home *** CD-ROM | disk | FTP | other *** search
/ Aminet 40 / Aminet 40 (2000)(Schatztruhe)[!][Dec 2000].iso / Aminet / game / board / AMono_source.lha / Mono_source / MonopolyDeluxe.AMOS / MonopolyDeluxe.amosSourceCode < prev    next >
Encoding:
AMOS Source Code  |  2000-09-24  |  143.2 KB  |  7,026 lines

  1. Set Buffer 30
  2.  
  3. Rem                            Monopoly Deluxe 
  4. Rem                           Version 1.8 Beta2        
  5.  
  6. Rem        Copyright ï¿½ 1935,1936,1947,1951,1952,1954,1961,1973   
  7. Rem               Parker Brothers all rights reserved  
  8.  
  9. Rem                  this Amiga version by Al Metz 
  10. Rem           All original programming ï¿½ 1994-2000 Al Metz     
  11. Rem                       All rights reserved
  12.  
  13. Rem     main screen = bank #6
  14. Rem     pick pieces = bank #7  
  15. Rem   Deluxe screen = bank #8
  16. Rem   Deluxe pieces = bank #9
  17. Rem    title screen = bank #10 
  18. Rem   Deluxe Chance = bank #11-14
  19. Rem   Misc Graphics = bank #15 
  20. Rem  Rescource bank = bank #16 
  21. Rem   Deluxe CChest = bank #17-19  
  22.  
  23. Rem Floating point variables use # (ex X#=1.5) 
  24.  
  25. On Break Proc CLEANCLOSE
  26. On Error Proc CLEANCLOSE2
  27.  
  28. _CLOSERTOOLS
  29. Lib Open 1,"reqtools.library",0
  30.  
  31. Hide On 
  32. Curs Off 
  33. Voice %1111
  34. Set Envel 1,0 To 1,63
  35. Set Envel 1,1 To 1,63
  36. Set Envel 1,2 To 1,63
  37. Set Envel 1,3 To 100,63
  38. Set Envel 1,4 To 1,63
  39. Set Envel 1,5 To 100,63
  40. Set Envel 1,6 To 1,63
  41. Wave 1 To %110
  42. Wave 0 To %100
  43. Volume %110,30
  44. Volume %1001,63
  45. Randomize Timer
  46.  
  47. VARIABLES:
  48.  
  49. Dim PX1(18),PY1(18),PX2(18),PY2(18),M(47),BB(4),AUCT(4),TEMP(4),TW(4)
  50. Dim BX(47),BY(47),PROP$(47),PRICE(47),RENT(47,5),PCOLOR(47),PMS(47)
  51. Dim HOUSECOST(47),CURRENT(47),HOUSE(47),HBACKUP(47),CURBACK(47)
  52. Dim PL$(4),PC(4),PM(4),PROPOWN(47),PPOS(4),PLPC(4),COMPPLY(4),GO(16)
  53. Dim CCHEST1$(16),CHANCE1$(16),CCMON(16),CCSPEC(16),CMON(16),CSPEC(16)
  54. Dim CCHEST2$(16),CCHEST3$(16),CHANCE2$(16),CHANCE3$(16),CHANCE4$(16)
  55. Dim SET1(47),SET2(47),RRRENT(4),JAILOUT(4),FS(4),DPC(4),DFX(47),DFY(47)
  56. Dim HOX(4),HOY(4),CHIPNAME$(12),CR$(10),LOAN(47),LCST(47),LCT(47),LWHO(47)
  57. Dim TEMPL2$(4),TEMPL3(4),EFFECT(20),PP(4),PV1#(47),PV2#(47),PVX(47),PV3#(40)
  58. Dim CS(40),CS2(40),DN$(16),DLPC(4),SX(41),SY(41),BVD(4),DC$(4),DD$(4)
  59. Dim CS1(16),CX1(16),CY1(16),CX2(16),CY2(16)
  60. Dim CCS1(16),CCX1(16),CCY1(16),CCX2(16),CCY2(16)
  61.  
  62. R2:
  63. Restore 
  64. GOOJFCC=0 : GOOJFC=0 : Rem goojfcc=get out of jail free Comm. Chest - same for Chance 
  65. CC=0 : C=0 : L=0 : M=0 : HOUSESLEFT=32 : HOTELSLEFT=12 : PARKING=0 : PARKING$=""
  66. WORTH=0 : DUBBLE=0 : PMT=0 : PMR=0 : SHUMAN=0 : D3=0 : H1=4 : H2=5 : CH=0
  67. COUNTRY=0 : C$="" : For X=1 To 4 : PP(X)=1 : Next X : X=0 : QSB=0 : CH$=""
  68. VERSION$="1.8b2" : SNAKE=0 : QQ=0 : QQ$="" : CJUNK=0 : G$="   "
  69. PM1=0 : PM2=0 : PM3=0 : DL$="" : FCR=0 : DS$="" : For X=1 To 4 : BVD(X)=0 : Next X
  70.  
  71. Rem pl$=player name:pc=player color:pm=player money:propown=who owns a property
  72. Rem ppos=player position:plpc=player piece shape:compply=if computer controls
  73. Rem np=number of players:pcolor=property color:go=pos at start 
  74. Rem CCHEST$=Commun. Chest string,CCMON=ccmoney,CCspec if special,CCBOB=Bob # 
  75. Rem same for Chance
  76. Rem set1 and set 2 are other props in color set. 
  77. Rem CURRENT=current rent:HOUSESLEFT=# of houses remaining:HOTELSLEFT=same for hotels   
  78. Rem PARKING=free parking jackpot:PARKING$=jackpot y/n  
  79. Rem CP$=colored props:QS$=quick start:FP$=fast play:BTB$=bankrupt to bank
  80. Rem QQ=multiply money for foreign versions:DL$=Deluxe version y/n
  81. Rem FCR=Front Current Screen: BVD= for Deluxe dead bob placekeeping  
  82.  
  83. Global PROP$(),PCOLOR(),PRICE(),RENT(),CHIPNAME$(),PARKING$,PARKING,COUNTRY
  84. Global HOUSECOST(),S$,PL$(),PC(),PM(),PLPC(),COMPPLY(),PROPOWN(),SEC,C$
  85. Global PPOS(),L,CCHEST1$(),CCHEST2$(),CCHEST3$(),CCMON(),CCSPEC(),CC,M
  86. Global CHANCE1$(),CHANCE2$(),CHANCE3$(),CHANCE4$(),CMON(),CSPEC(),C,MOV,NP
  87. Global D1,D2,SET1(),SET2(),PA$,CURRENT(),RRRENT(),HOUSE(),RD,UD,SELL1,SELL2
  88. Global HIBID,H,M(),WORTH,A$,PM$,LH$,SF$,PM$,QD$,NP$,DEL,CH$,SNAKE
  89. Global BX(),BY(),CP$,PP(),LG$,QS$,FP$,BTB$,PV1#(),PV2#(),PVX(),PV3#(),QQ,QQ$
  90. Global JUNKY,PM1,DL$,FCR,BVD(),DNP,DLPC(),DPC(),DFX(),DFY()
  91. Global CS1(),CX1(),CY1(),CX2(),CY2()
  92. Global CCS1(),CCX1(),CCY1(),CCX2(),CCY2()
  93.  
  94. If Ntsc
  95.    DEL=10
  96. Else 
  97.    DEL=8
  98. End If 
  99.  
  100. Screen Open 1,640,200,16,Hires
  101. Curs Off 
  102. Flash Off 
  103. Screen To Front 1
  104. Screen Open 0,640,200,16,Hires
  105. Curs Off 
  106. Flash Off 
  107. Screen Open 2,640,200,16,Hires
  108. Curs Off 
  109. Flash Off 
  110. Screen Open 3,640,200,16,Hires
  111. Curs Off 
  112. Flash Off 
  113. Screen To Back 3
  114. Screen Open 4,640,200,16,Hires
  115. Curs Off 
  116. Flash Off 
  117. Screen To Back 4
  118. Unpack 8 To 2
  119. Palette ,,,,,,,,,,,,,,,,,,,,,$BBB,$888,$444,,$BBB,$888,$444,,$BBB,$888,$444
  120. Screen To Back 2
  121. Unpack 6 To 0
  122. Screen To Back 0
  123. PC(0)=2 : PC(1)=4 : PC(2)=3 : PC(3)=9 : PC(4)=5
  124. For J=0 To 4
  125.    DPC(J)=PC(J)
  126. Next J
  127. Screen 1
  128. Wait Vbl 
  129. Get Palette 0
  130.  
  131. View 
  132. Wait Vbl 
  133. For J=1 To 16
  134.    Read DN$(J)
  135. Next J
  136. For J=1 To 12
  137.    Read CHIPNAME$(J)
  138. Next J
  139. SHUFFLECHIP
  140. PL$(0)="Bank"
  141. JUNK$=""
  142.  
  143. SETUP1:
  144. D1=Rnd(5)+1 : D2=Rnd(5)+1
  145. For X=1 To 109
  146.    Paste Bob 600,600,X
  147. Next X
  148. Reserve Zone 
  149. Reserve Zone 41
  150. For J=1 To 41
  151.    Read X1,Y1,X2,Y2
  152.    Set Zone J,X1,Y1 To X2,Y2
  153. Next J
  154. DL$="y" : PA$="y" : LH$="y" : SF$="n" : PARKING$="n" : PM$="n"
  155. QD$="n" : NP=4 : COUNTRY=1 : C$="$" : CP$="n" : LG$="n" : QS$="n"
  156. FP$="n" : BTB$="n" : CH$="y" : QQ=1 : FCR=0
  157. _COPYRIGHT[50]
  158. Colour 8,$0
  159. Wait Vbl 
  160. Show On 
  161. Repeat 
  162.    While Mouse Click=0 and JUNK$="" : JUNK$=Inkey$ : Wend 
  163.    MZ=Mouse Zone
  164.    On MZ Proc T1Y,T1N,T2Y,T2N,T3Y,T3N,T4Y,T4N,T5Y,T5N,T6Y,T6N,T7Y,T7N
  165.    On MZ-14 Proc T8Y,T8N,T9Y,T9N,T10Y,T10N,T11Y,T11N,PL1,PL2,PL3,PL4,TLD,TSV
  166.    On MZ-29 Proc TDF,TUS,TUK,TAU,TFR,TITA,TGER,TSWE,TSW,TNC,TLG
  167.    If MZ<41 or JUNK$=Chr$(13) Then Sam Play 1
  168. Until MZ=29 or MZ=40 or JUNK$=Chr$(13)
  169. Reserve Zone 
  170. Colour 8,$880
  171. JUNK$=""
  172. If FP$="y" Then DEL=1
  173. If QS$="y" Then H1=3 : H2=4
  174. If DL$="y" Then QQ=1 : FCR=2 : PC(1)=14 : PC(2)=14 : PC(3)=14 : PC(4)=14
  175.  
  176. '      Centre "This game is dedicated to the memories of"
  177. '      Locate  0,8 
  178. '      Centre "My Dad,"
  179. '      Locate  0,10  
  180. '      Centre "8/19/30 - 5/15/94"
  181. '      Locate  0,12  
  182. '      Centre "And my Mom."
  183. '      Locate  0,14  
  184. '      Centre "7/12/35 - 2/17/95"
  185.  
  186. Screen 1
  187. Screen To Front 1
  188. Curs Off 
  189. Wait Vbl 
  190. Paper 0
  191. Pen 14
  192. Cls 0
  193. Wait Vbl 
  194. Curs On 
  195. Wait Vbl 
  196.  
  197. If LG$="y" Then Goto SKIP0
  198.  
  199. For Y=1 To 2
  200.    For X=1 To 3
  201.       If PP(X)=0
  202.          Swap PP(X),PP(X+1) : Swap PC(X),PC(X+1)
  203.       End If 
  204.    Next X : 
  205. Next Y : Y=0 : X=0
  206.  
  207. STUFF:
  208. A$="" : B$=""
  209. Resource Bank 16
  210. Resource Screen Open 3,640,200,0
  211. Flash Off : Curs Off : Cls 0 : Paper 0 : Pen 15
  212. Get Palette 0
  213.  
  214. If DL$="n"
  215.    Palette ,,$888,,$AAA,$888,$555,$BBB,,$FFF,,Colour(PC(1)),Colour(PC(2)),Colour(PC(3)),Colour(PC(4))
  216.    Wait Vbl : Paper 0
  217.    A$=A$+"RUn      0,7;"
  218.    A$=A$+"EXit;"
  219.    B$=B$+"SetVar   1,' Enter names of players ';"
  220.    B$=B$+"SetVar   2,' Player #1 is ';"
  221.    B$=B$+"SetVar   3,' Player #2 is ';"
  222.    B$=B$+"SetVar   4,' Player #3 is ';"
  223.    B$=B$+"SetVar   5,' Player #4 is ';"
  224.    B$=B$+"SIze     520,150;"
  225.    B$=B$+"BAse     SW SX-2/,SH SY-2/;"
  226.    B$=B$+"SAve     2;"
  227.    B$=B$+"BOx      0,0,1,SX,SY;"
  228.    B$=B$+"POutline 1VACX,10,1VA,0,9;"
  229.    B$=B$+"PRint    24,32,2VA,9;"
  230.    B$=B$+"LIne     XB7+,YA4-,16,264;"
  231.    B$=B$+"EDit     1,XA8+,YA4+,13,13,'',0,11;"
  232.    B$=B$+"PRint    24,64,3VA,9;"
  233.    B$=B$+"LIne     XB7+,YA4-,16,264;"
  234.    B$=B$+"EDit     2,XA8+,YA4+,13,13,'',0,12;"
  235.    If NP>2
  236.       B$=B$+"PRint    24,96,4VA,9;"
  237.       B$=B$+"LIne     XB7+,YA4-,16,264;"
  238.       B$=B$+"EDit     3,XA8+,YA4+,13,13,'',0,13;"
  239.       If NP>3
  240.          B$=B$+"PRint    24,128,5VA,9;"
  241.          B$=B$+"LIne     XB7+,YA4-,16,264;"
  242.          B$=B$+"EDit     4,XA8+,YA4+,13,13,'',0,14;"
  243.       End If 
  244.    End If 
  245.    B$=B$+"BUtton   0,SX80-,SY24-,56,14,0,0,1;[UNpack 0,0,BP47+;PR 4,4,' Done ',12;][BQ;]"
  246.    B$=B$+"KY       13,0;"
  247.    B$=B$+"RUn      0,3;"
  248.    B$=B$+"EXit;"
  249.    Dialog Open 1,B$
  250.    X=Dialog Run(1)
  251.    Sam Play 1
  252.    PL$(1)=Rdialog$(1,1)
  253.    PL$(2)=Rdialog$(1,2)
  254.    If NP>2
  255.       PL$(3)=Rdialog$(1,3)
  256.       If NP>3
  257.          PL$(4)=Rdialog$(1,4)
  258.       End If 
  259.    End If 
  260.    Dialog Close 
  261. End If 
  262. If DL$="y"
  263.    For J=1 To 12
  264.       CHIPNAME$(J)=""
  265.    Next J
  266. End If 
  267.  
  268. SKIP0:
  269. DNP=NP
  270. For J=1 To NP
  271.    BVD(J)=J
  272.    If PP(J)=1
  273.       COMPPLY(J)=0
  274.    Else 
  275.       COMPPLY(J)=1
  276.    End If 
  277.    If PL$(J)=""
  278.       If PP(J)>1
  279.          If PP(J)=3
  280.             PL$(J)="� "+CHIPNAME$(J)
  281.          Else 
  282.             PL$(J)="� "+CHIPNAME$(J)
  283.          End If 
  284.       Else 
  285.          PL$(J)="Player"+Str$(J)
  286.       End If 
  287.    End If 
  288.    If Len(PL$(J))<4
  289.       PL$(J)=PL$(J)+"    "
  290.       PL$(J)=Left$(PL$(J),4)
  291.    End If 
  292.    PL$(J)=Left$(PL$(J),13)
  293.    DC$(J)=PL$(J)
  294. Next J
  295.  
  296. If LG$="y" Then Goto SKIP1
  297.  
  298. Screen To Front 1
  299. Screen 1
  300. If DL$="y"
  301.    Unpack 9 To 1
  302. Else 
  303.    Unpack 7 To 1
  304. End If 
  305. Get Palette 0
  306. Screen Close 3
  307. Wait Vbl 
  308. Reserve Zone 18
  309. If DL$="y"
  310.    For J=1 To 17
  311.       Read JUNK,JUNK,JUNK,JUNK
  312.    Next J
  313.    JUNK=0
  314. End If 
  315. For J=1 To 17 : Read PX1(J),PY1(J),PX2(J),PY2(J)
  316.    Set Zone J,PX1(J),PY1(J) To PX2(J),PY2(J)
  317. Next J
  318. If DL$="n"
  319.    For J=1 To 17
  320.       Read JUNK,JUNK,JUNK,JUNK
  321.    Next J
  322.    JUNK=0
  323. End If 
  324. Set Zone 18,0,0 To 639,199
  325. Wait Vbl 
  326. If DL$="y"
  327.    JUNK=12
  328. Else 
  329.    JUNK=14
  330. End If 
  331. Paper JUNK : Pen 1
  332. Locate 0,23
  333. Centre "Please select your piece."
  334. For J=1 To NP : Pen PC(J) : Paper 0 : Locate 23,2
  335.    Clear Key 
  336.    Paper JUNK
  337.    Centre "                                                               "
  338.    If DL$="n"
  339.       Pen PC(J)
  340.    Else 
  341.       Pen 0
  342.    End If 
  343.    Locate 23,2
  344.    If DL$="n"
  345.       Paper 0
  346.    Else 
  347.       Paper 12
  348.    End If 
  349.    If DL$="n"
  350.       Centre " Player #"+Str$(J)+" `"+PL$(J)+"' "+Paper$(JUNK)
  351.    Else 
  352.       If COMPPLY(J)=0
  353.          Centre PL$(J)
  354.       Else 
  355.          If PP(J)=3
  356.             Centre "Expert"
  357.          Else 
  358.             Centre "Amiga"
  359.          End If 
  360.       End If 
  361.    End If 
  362.    REDO:
  363.    JUNK$="" : MZ=0
  364.    If COMPPLY(J)=0
  365.       Show On 
  366.       While Mouse Click=0 and JUNK$="" : JUNK$=Inkey$ : Wend 
  367.       MZ=Mouse Zone
  368.       If JUNK$=Chr$(13) or MZ=17
  369.          Hide On 
  370.          Wait Vbl 
  371.          HPB:
  372.          JJ=Rnd(15)+1
  373.          For K=1 To J
  374.             If PLPC(K)=JJ
  375.                X=1
  376.             End If 
  377.          Next K
  378.          If X=1
  379.             X=0
  380.             Goto HPB
  381.          End If 
  382.          MZ=JJ
  383.          Wait Vbl 
  384.          JUNK$=""
  385.       End If 
  386.       If MZ=18
  387.          MZ=0 : Goto REDO
  388.       End If 
  389.       If DL$="y"
  390.          PL$(J)=DN$(MZ)
  391.       End If 
  392.       DD$(J)=DN$(MZ)
  393.    Else 
  394.       Hide On 
  395.       Wait Vbl 
  396.       CPB:
  397.       JJ=Rnd(15)+1
  398.       For K=1 To J
  399.          If PLPC(K)=JJ
  400.             X=1
  401.          End If 
  402.       Next K
  403.       If X=1
  404.          X=0
  405.          Goto CPB
  406.       End If 
  407.       MZ=JJ
  408.       If DL$="y"
  409.          PL$(J)=Left$(PL$(J),2)+DN$(MZ)
  410.       End If 
  411.       Wait 3*DEL
  412.    End If 
  413.    Sam Play 1
  414.    Ink PC(J)
  415.    If DL$="y"
  416.       Ink 11
  417.    End If 
  418.    Bar PX1(MZ),PY1(MZ) To PX2(MZ),PY2(MZ)
  419.    Reset Zone MZ
  420.    PLPC(J)=MZ
  421.    DLPC(J)=MZ+81
  422.    MZ=0 : JUNK$=""
  423. Next J
  424. For J=1 To NP
  425.    PL$(J)=Left$(PL$(J),13)
  426.    If PLPC(J)<>16
  427.       If PLPC(J)>9
  428.          If PLPC(J)>12
  429.             PLPC(J)=PLPC(J)+29
  430.          Else 
  431.             PLPC(J)=PLPC(J)+22
  432.          End If 
  433.       End If 
  434.    Else 
  435.       PLPC(J)=53
  436.    End If 
  437. Next J
  438. JUNK$=""
  439. Screen 2
  440. For J=1 To NP
  441.    Bob J+4,500,500,DLPC(J)
  442. Next J
  443. Screen 0
  444.  
  445. SKIP1:
  446. If LG$="y"
  447.    For J=1 To 17
  448.       Read JUNK,JUNK,JUNK,JUNK,JUNK,JUNK,JUNK,JUNK
  449.    Next J
  450.    JUNK=0 : J=0
  451.    For J=1 To 4
  452.       PLPC(J)=J
  453.    Next J
  454. End If 
  455.  
  456. Hide On 
  457.  
  458. SETUP2:
  459. If FP$<>"y"
  460.    Repeat 
  461.       JUNK=Rnd(60000)
  462.       JUNK=JUNK*2+1
  463.       JUNK$=Str$(JUNK)
  464.       If Right$(JUNK$,1)="5"
  465.          JUNK=0
  466.       End If 
  467.    Until JUNK<>0
  468.    Appear FCR To 1,JUNK
  469. End If 
  470. JUNK=0 : JUNK$=""
  471. Screen To Front FCR
  472. S$="            "
  473. For X=1 To 25
  474.    DS$=DS$+Cright$
  475. Next X
  476. Screen FCR
  477. Pen 14 : Paper 0
  478. Curs Off 
  479.  
  480. UDATEMENUS
  481.  
  482. Screen 0
  483. Wait Vbl 
  484. Paper 0
  485. For J=1 To 41
  486.    Read A,B : BX(J)=(A*2)+2 : BY(J)=B-4 : LCT(J)=0 : LWHO(J)=0
  487. Next J
  488. For J=1 To 41
  489.    Read A,B : SX(J)=A : SY(J)=B
  490. Next J
  491. For J=1 To 47 : Read A$,A,B,C,D,E,F,G,H,I,K,L,N,O#,P,Q
  492.    PROP$(J)=A$
  493.    PRICE(J)=A
  494.    RENT(J,0)=B
  495.    CURRENT(J)=RENT(J,0)
  496.    RENT(J,1)=C
  497.    RENT(J,2)=D
  498.    RENT(J,3)=E
  499.    RENT(J,4)=F
  500.    RENT(J,5)=G
  501.    HOUSECOST(J)=H
  502.    PCOLOR(J)=I
  503.    SET1(J)=K
  504.    SET2(J)=L
  505.    LCST(J)=N
  506.    LOAN(J)=0
  507.    PV1#(J)=O#
  508.    DFX(J)=P
  509.    DFY(J)=Q
  510. Next J : L=0 : M=0
  511. Gosub ZON
  512. For J=6 To 36 Step 10
  513.    CURRENT(J)=25
  514. Next J
  515. For J=1 To NP
  516.    JAILOUT(J)=0
  517. Next J
  518. Ink 0 : Bar 181,38 To 562,(42+8*NP)
  519.  
  520.  
  521. MAIN:
  522. QQUEST[45] : JUNK1$=QQ$ : QQUEST[100] : JUNK2$=QQ$ : QQUEST[20] : JUNK3$=QQ$
  523. QQUEST[25] : JUNK4$=QQ$ : QQUEST[200] : JUNK5$=QQ$ : QQUEST[10] : JUNK6$=QQ$
  524. QQUEST[150] : JUNK7$=QQ$ : QQUEST[50] : JUNK8$=QQ$
  525. QQUEST[40] : JUNK9$=QQ$ : QQUEST[115] : JUNK10$=QQ$
  526. For J=1 To 16
  527.    Read CCHEST1$(J),CCHEST2$(J),CCHEST3$(J),CCMON(J),CCSPEC(J)
  528.    Read CCS1(J),CCX1(J),CCY1(J),CCX2(J),CCY2(J)
  529. Next J
  530. QQUEST[50] : JUNK1$=QQ$ : QQUEST[150] : JUNK2$=QQ$ : QQUEST[15] : JUNK3$=QQ$
  531. QQUEST[200] : JUNK4$=QQ$ : QQUEST[25] : JUNK5$=QQ$ : QQUEST[100] : JUNK6$=QQ$
  532. For J=1 To 16
  533.    Read CHANCE1$(J),CHANCE2$(J),CHANCE3$(J),CHANCE4$(J)
  534.    Read CMON(J),CSPEC(J)
  535.    Read CS1(J),CX1(J),CY1(J),CX2(J),CY2(J)
  536. Next J
  537. QQ$="" : JUNK1$="" : JUNK2$="" : JUNK3$="" : JUNK4$="" : JUNK5$=""
  538. JUNK6$="" : JUNK7$="" : JUNK7$="" : JUNK8$="" : JUNK9$="" : JUNK10$=""
  539. For J=1 To 16
  540.    Read GO(J)
  541. Next J
  542. For J=1 To 4
  543.    Read RRRENT(J)
  544. Next J
  545. NUMCR=8 : Rem number of cute remarks 
  546. For J=1 To NUMCR
  547.    Read CR$(J)
  548. Next J
  549.  
  550. On COUNTRY-1 Gosub BRIT,AUS,FR,ITA,GER,SWE,SW,NC
  551.  
  552. SHUFFLECHEST
  553. SHUFFLECHANCE
  554. For J=1 To NP
  555.    PPOS(J)=1 : PM(J)=1500
  556.    Screen 0
  557.    Bob J,GO((J*2)-1),GO(J*2),PLPC(J)
  558.    Screen 2
  559.    Bob J+4,GO((J*2)+7),GO((J*2)+8),DLPC(J)
  560.    Screen 0
  561.    Wait Vbl 
  562. Next J
  563.  
  564. Wait Vbl 
  565. Paste Bob 1,1,20
  566. Paste Bob 20,30,20
  567. Screen 2
  568. Paste Bob 472,30,98
  569. Paste Bob 530,30,104
  570. For J=1 To NP
  571.    Ink 0
  572.    JUNK=-48+(50*J)
  573.    Bar 4,JUNK To 51,JUNK+23
  574.    Paste Bob 4,JUNK,DLPC(J)-28
  575. Next J
  576. JUNK=0
  577. Screen 0
  578. Wait Vbl 
  579. L=1
  580. Limit Mouse 128,52 To 446,248
  581. Unpack 15 To 3
  582. Screen To Back 3
  583. Screen 0
  584. Wait Vbl 
  585. Screen 2
  586. Ink 12
  587. Bar 244,63 To 594,177
  588. Screen Copy 3,276,81,628,148 To 2,244,40
  589. Paste Bob 472,30,D1+97 : Paste Bob 530,30,D2+103
  590. Wait Vbl 
  591. Screen 0
  592.  
  593. CLRINFO
  594. JUNK=0
  595. For J=1 To NP
  596.    If COMPPLY(J)=1
  597.       Inc JUNK
  598.    End If 
  599. Next J
  600. SHUMAN=NP-JUNK
  601. If JUNK<NP
  602.    JUNK=NP
  603.    RSL:
  604.    If COMPPLY(JUNK)=1
  605.       Dec JUNK
  606.       Goto RSL
  607.    End If 
  608.    RSL2:
  609.    JUNK2=Rnd(NP-1)+1
  610.    If COMPPLY(JUNK2)=1
  611.       Goto RSL2
  612.    End If 
  613.    L=JUNK2
  614. Else 
  615.    L=1
  616. End If 
  617. If QS$="y"
  618.    For J=1 To NP
  619.       For K=1 To 2
  620.          Repeat 
  621.             JUNK=Rnd(40)+1
  622.          Until PRICE(JUNK)>0 and PROPOWN(JUNK)=0
  623.          PROPOWN(JUNK)=J
  624.          PM(J)=PM(J)-PRICE(JUNK)
  625.          DFILL[JUNK,J]
  626.          UDATEMONEY
  627.       Next K
  628.    Next J
  629.    UDATESETS
  630. End If 
  631. UDATENAME
  632. UDATEPROP
  633. UDATEMONEY
  634. JUNK=0
  635. LOKATE[23,15]
  636. CHPRT["   "+Pen$(PC(L))+PL$(L)+Pen$(14)+" goes first."]
  637. LOKATE[23,12]
  638. DPEN[4]
  639. CHPRT["Go"]
  640. DPEN[14]
  641. LOKATE[23,20]
  642. CHPRT["Press any key to roll dice."]
  643. PMR=Rnd(2)+4
  644.  
  645. If LG$="y"
  646.    LG$="n"
  647.    Gosub LOD
  648. End If 
  649.  
  650. On Menu Gosub PROJECT,PROPERTY,BUY,SELL,TRADE,SHO
  651. Menu On 
  652.  
  653. ROLL:
  654. Wait Vbl 
  655. If PL$(L)=""
  656.    Goto YOURDEAD
  657. End If 
  658. IJX=1
  659. UDATENAME
  660. HIGHLIGHTTURN
  661. JUNK$=Inkey$
  662. If JUNK$=Chr$(27)
  663.    Gosub CQUIT
  664.    JUNK$="" : JUNK=0
  665. End If 
  666. Clear Key 
  667.  
  668. Rem use this for menus 
  669.  
  670. Wait Vbl 
  671. If COMPPLY(L)=0
  672.    Show On 
  673.    On Menu On 
  674. End If 
  675. Wait Vbl 
  676. RAPISJUNK$=Inkey$
  677. If PM(L)<0
  678.    Gosub WARNING
  679. End If 
  680. MOUSEX=0
  681. If COMPPLY(L)=1
  682.    Hide On 
  683.    On Menu Off 
  684.    Menu Off 
  685. Else 
  686.    On Menu On 
  687.    Menu On 
  688.    Show On 
  689. End If 
  690. While RAPISJUNK$="" and KILT=0 and MOUSEX=0
  691.    If Mouse Click=1
  692.       MOUSEX=Mouse Zone
  693.       If DL$="n"
  694.          If MOUSEX=47 or MOUSEX=44
  695.             MOUSEX=0
  696.          Else 
  697.             If MOUSEX=43
  698.                OK
  699.             Else 
  700.                Sam Play 1
  701.             End If 
  702.          End If 
  703.       Else 
  704.          If MOUSEX=47 or MOUSEX=45 or MOUSEX=42
  705.             MOUSEX=0
  706.          Else 
  707.             If MOUSEX=43
  708.                CLRINFO
  709.                Gosub ABOUT
  710.                MOUSEX=0
  711.             Else 
  712.                Sam Play 1
  713.             End If 
  714.          End If 
  715.       End If 
  716.    End If 
  717.    If COMPPLY(L)=1
  718.       Clear Key 
  719.       Gosub COMPROLL
  720.    End If 
  721.    While Mouse Key=2
  722.    Wend 
  723.    RAPISJUNK$=Inkey$
  724. Wend 
  725. MOUSEX=0
  726. On Menu Off 
  727. Menu Off 
  728. Hide On 
  729.  
  730. Screen 2
  731. JUNK=Point(244,32)
  732. If JUNK<>12
  733.    Ink 12
  734.    Bar 242,30 To 596,180
  735.    Screen Copy 3,276,81,628,148 To 2,244,40
  736.    Paste Bob 472,30,D1+97 : Paste Bob 530,30,D2+103
  737.    Wait Vbl 
  738.    CCMOOSE=0
  739.    Ink 14
  740. End If 
  741. Screen 0
  742.  
  743. If PM(L)<0
  744.    Gosub KAPUT
  745. End If 
  746. Wait Vbl 
  747. UDATENAME
  748. HIGHLIGHTTURN
  749. Wait Vbl 
  750. If KILT=1
  751.    KILT=0
  752.    Goto ROLL
  753. End If 
  754. If PPOS(L)=41 Then Gosub INJAIL
  755. ROLLS:
  756. If IJX>0
  757.    If IJX<3
  758.       D1=Rnd(5)+1 : D2=Rnd(5)+1 : ROL=D1+D2
  759.       If QD$<>"y"
  760.          DICEROLL
  761.       End If 
  762.    End If 
  763.    IJSKIP:
  764.    If D1<>D2
  765.       DUBBLE=0
  766.    Else 
  767.       Inc DUBBLE
  768.    End If 
  769.    If IJX=3
  770.       DUBBLE=0
  771.       IJX=0
  772.    End If 
  773.    Paste Bob 1,1,D1+19 : Paste Bob 20,30,D2+19
  774.    Screen 2
  775.    Paste Bob 472,30,D1+97 : Paste Bob 530,30,D2+103
  776.    Screen 0
  777.    Wait Vbl 
  778.    If DUBBLE=3
  779.       CLRINFO
  780.       LOKATE[23,18]
  781.       CHPRT["Three Doubles in a row!"]
  782.       LOKATE[23,20]
  783.       CHPRT["Sorry, but you must go to Jail."]
  784.       Gosub JAIL
  785.    End If 
  786.    CLRINFO
  787.    If PPOS(L)<>41
  788.       Gosub MP
  789.       PPOS(L)=PPOS(L)+ROL
  790.       If FP$="y"
  791.          Play %100,90,2
  792.          Play Off 
  793.          Wait 9
  794.       End If 
  795.       If PPOS(L)>40
  796.          PPOS(L)=PPOS(L)-40 : PM(L)=PM(L)+200
  797.       End If 
  798.       SKIP2:
  799.       UDATEPROP
  800.       PRTINFO[PPOS(L)]
  801.       If PPOS(L)=11
  802.          Gosub CUTEREMARK
  803.       End If 
  804.       TEMP=0
  805.       PO=PROPOWN(PPOS(L))
  806.       If PPOS(L)=39
  807.          PM(L)=PM(L)-RENT(39,0)
  808.          If PARKING$="y"
  809.             PARKING=PARKING+RENT(39,0)
  810.          End If 
  811.       End If 
  812.       UDATEMONEY
  813.       PROP
  814.       UDATEMONEY
  815.       If PO<>PROPOWN(PPOS(L))
  816.          DPEN[14]
  817.          LOKATE[23,16]
  818.          If PRICE(PPOS(L))>0
  819.             CHPRT["Owner - "+Pen$(PC(PROPOWN(PPOS(L))))+PL$(PROPOWN(PPOS(L)))]
  820.          End If 
  821.          DPEN[14]
  822.       End If 
  823.       If RENT(PPOS(L),0)=1003
  824.          DLMOOSE=1
  825.          Gosub CHANCE
  826.          If MOV>0
  827.             MOV=0 : Wait 2*DEL : CLRINFO : Goto SKIP2
  828.          End If 
  829.       End If 
  830.       If RENT(PPOS(L),0)=1000
  831.          DLMOOSE=1
  832.          Gosub CCHEST
  833.          If MOV>0
  834.             MOV=0 : Wait 2*DEL : CLRINFO : Goto SKIP2
  835.          End If 
  836.       End If 
  837.       UDATEMONEY
  838.       If PPOS(L)=31
  839.          Wait 6*DEL : Gosub JAIL
  840.       End If 
  841.       If DUBBLE>0 and IJX<>3
  842.          Wait Vbl 
  843.          Bell : Bell : Goto ROLL
  844.       End If 
  845.    End If 
  846. End If 
  847. IJX=0
  848. MOV=0
  849.  
  850. YOURDEAD:
  851. Inc L
  852. If L>NP
  853.    L=1
  854.    If PM$="y"
  855.       Inc PMT
  856.       For J=1 To 40
  857.          If LCT(J)<0
  858.             Inc LCT(J)
  859.             If LCT(J)=0
  860.                Gosub LOANCALL
  861.             End If 
  862.          End If 
  863.       Next J
  864.       If PMT=PMR
  865.          PMT=0 : PMR=Rnd(2)+4
  866.          For J=1 To NP
  867.             TEMP(J)=PPOS(J)
  868.          Next J
  869.          Gosub PMASTER
  870.          For J=1 To NP
  871.             PPOS(J)=TEMP(J)
  872.          Next J
  873.          Wait Vbl 
  874.          CLRINFO
  875.          PRTINFO[PPOS(NP)]
  876.       End If 
  877.    End If 
  878.    L=1
  879. End If 
  880. Wait Vbl 
  881. If DLMOOSE=0
  882.    Gosub UPINFO
  883. Else 
  884.    DLMOOSE=0
  885. End If 
  886. Goto ROLL
  887. End 
  888.  
  889. MP:
  890. For J=PPOS(L)+1 To PPOS(L)+ROL : K=J
  891.    If K>40 Then K=K-40
  892.    If K>21
  893.       Bob L,BX(K),BY(K),Hrev(PLPC(L))
  894.       Screen 2
  895.       Wait Vbl 
  896.       Bob L+4,SX(K),SY(K),Hrev(DLPC(L))
  897.    Else 
  898.       Bob L,BX(K),BY(K),PLPC(L)
  899.       Screen 2
  900.       Wait Vbl 
  901.       Bob L+4,SX(K),SY(K),DLPC(L)
  902.    End If 
  903.    If FP$="n"
  904.       Play %100,90,2
  905.       Play Off 
  906.    End If 
  907.    Wait DEL
  908.    Wait Vbl 
  909.    Screen 0
  910. Next J
  911. Return 
  912.  
  913. LOANCALL:
  914. JUNK=LOAN(J)
  915. JUNK2=(LCST(J)/10)+LCST(J)
  916. Wait 6*DEL
  917. Bell 10
  918. Wait DEL
  919. Bell 10
  920. Wait DEL
  921. Bell 10
  922. Wait 6*DEL
  923. CLRINFO
  924. LOKATE[23,12]
  925. DPEN[14]
  926. CHPRT["The loan on the following properties"]
  927. LOKATE[23,13]
  928. CHPRT["is being called"]
  929. If RENT(J,0)=1002
  930.    JUNK3=14
  931.    For XX=6 To 36 Step 10
  932.       Inc JUNK3
  933.       LOKATE[23,JUNK3]
  934.       CHPRT[Pen$(PCOLOR(XX))+PROP$(XX)+Space$(3)]
  935.       PM(PROPOWN(XX))=PM(PROPOWN(XX))-220
  936.    Next XX
  937. Else 
  938.    LOKATE[23,15]
  939.    CHPRT[Pen$(PCOLOR(J))+PROP$(J)+Space$(3)]
  940.    PM(PROPOWN(J))=PM(PROPOWN(J))-(PRICE(J)+(PRICE(J)/10))
  941.    LOKATE[23,16]
  942.    CHPRT[Pen$(PCOLOR(SET1(J)))+PROP$(SET1(J))+Space$(3)]
  943.    PM(PROPOWN(SET1(J)))=PM(PROPOWN(SET1(J)))-(PRICE(SET1(J))+(PRICE(SET1(J))/10))
  944.    If SET1(J)<>SET2(J)
  945.       LOKATE[23,17]
  946.       CHPRT[Pen$(PCOLOR(SET2(J)))+PROP$(SET2(J))+Space$(3)]
  947.       PM(PROPOWN(SET2(J)))=PM(PROPOWN(SET2(J)))-(PRICE(SET2(J))+(PRICE(SET2(J))/10))
  948.    End If 
  949. End If 
  950. LC:
  951. JUNK$="" : JUNK=0 : JUNK2=0
  952. Wait 15*DEL
  953. UDATEMONEY
  954. UDATEBOBS
  955. CLRINFO
  956. Return 
  957.  
  958. PMASTER:
  959. JUNK=0 : JUNK2=0 : JUNK3=0
  960. For J=1 To 40
  961.    If PRICE(J)>0 and PROPOWN(J)=0
  962.       Inc JUNK : PMS(JUNK)=J
  963.    End If 
  964. Next J
  965. If JUNK>0
  966.    Bell : Wait 5 : Bell : Wait 5 : Bell 
  967.    Wait 10*DEL
  968.    CLRINFO
  969.    Wait Vbl 
  970.    TEMPL=L
  971.    JUNK3=PPOS(L)
  972.    Gosub LESS
  973.    M=Rnd(NP-1)+1
  974.    If JUNK>1
  975.       X=Rnd(JUNK-1)+1
  976.    Else 
  977.       X=JUNK
  978.    End If 
  979.    PPOS(L)=PMS(X)
  980.    Gosub PMAUCTION
  981.    L=TEMPL
  982.    PPOS(L)=JUNK3
  983.    JUNK2=0 : JUNK3=0
  984.    UDATESETS
  985.    UDATEMONEY
  986.    UDATEBOBS
  987.    Wait 6*DEL
  988.    CLRINFO
  989.    PRTINFO[PPOS(NP)]
  990. Else 
  991.    BUYBACK:
  992.    Bell 50
  993.    Wait DEL
  994.    Bell 50
  995.    Wait DEL
  996.    Bell 30
  997.    Wait 10*DEL
  998.    AUC=0
  999.    For X=1 To 4
  1000.       AUCT(X)=0
  1001.    Next X
  1002.    BB2:
  1003.    JUNK=Rnd(39)+1
  1004.    If PRICE(JUNK)=0
  1005.       Goto BB2
  1006.    End If 
  1007.    CLRINFO
  1008.    DPEN[10]
  1009.    LOKATE[23,12]
  1010.    CHPRT["Buyback"]
  1011.    BBJ=3
  1012.    BB(1)=JUNK : BB(2)=SET1(JUNK) : BB(3)=SET2(JUNK)
  1013.    If BB(2)=BB(3)
  1014.       BBJ=2
  1015.    End If 
  1016.    If RENT(JUNK,0)=1002
  1017.       BBJ=4
  1018.       BB(1)=6 : BB(2)=16 : BB(3)=26 : BB(4)=36
  1019.    End If 
  1020.    If RENT(JUNK,0)=1005
  1021.       BBJ=2
  1022.       BB(1)=13 : BB(2)=29
  1023.    End If 
  1024.    For J=1 To NP
  1025.       JUNK=0
  1026.       For JJ=1 To BBJ
  1027.          If PROPOWN(BB(JJ))=J
  1028.             Inc JUNK
  1029.          End If 
  1030.       Next JJ
  1031.       If JUNK=1
  1032.          For JJ=1 To BBJ
  1033.             If PROPOWN(BB(JJ))=J
  1034.                If CURRENT(BB(JJ))=0
  1035.                   PM(J)=PM(J)+(PRICE(BB(JJ))/2-(PRICE(BB(JJ))/10))
  1036.                Else 
  1037.                   PM(J)=PM(J)+PRICE(BB(JJ))
  1038.                End If 
  1039.                PROPOWN(BB(JJ))=0
  1040.                UFILL[BB(JJ),J]
  1041.                Inc AUC : AUCT(AUC)=BB(JJ)
  1042.             End If 
  1043.          Next JJ
  1044.       End If 
  1045.    Next J
  1046.    DPEN[14]
  1047.    LOKATE[23,14]
  1048.    CHPRT[Pen$(14)+"The following properties will be bought back."]
  1049.    If AUC>0
  1050.       For J=1 To AUC
  1051.          LOKATE[23,15+J]
  1052.          CHPRT[Pen$(PCOLOR(AUCT(J)))+PROP$(AUCT(J))+Space$(3)]
  1053.       Next J
  1054.       DPEN[14]
  1055.       JUNK=0
  1056.       UDATEMONEY
  1057.       UDATESETS
  1058.       JUNK=PPOS(L)
  1059.       TEMPL=L
  1060.       For J=1 To AUC
  1061.          CLRINFO
  1062.          Gosub LESS
  1063.          M=Rnd(NP-1)+1
  1064.          PPOS(L)=AUCT(J)
  1065.          PMS(X)=AUCT(J)
  1066.          Gosub PMAUCTION
  1067.          UDATESETS
  1068.          UDATEMONEY
  1069.       Next J
  1070.    Else 
  1071.       LOKATE[23,16]
  1072.       DPEN[PCOLOR(BB(1))]
  1073.       CHPRT["* NONE *"]
  1074.       DPEN[14]
  1075.       Wait 10*DEL
  1076.    End If 
  1077.    Wait 85
  1078.    UDATESETS
  1079.    UDATEMONEY
  1080.    CLRINFO
  1081.    L=TEMPL
  1082.    PPOS(L)=JUNK
  1083.    JUNK=0
  1084.    PRTINFO[PPOS(NP)]
  1085. End If 
  1086. CLRINFO
  1087. PRTINFO[PPOS(NP)]
  1088. Clear Key 
  1089. Return 
  1090.  
  1091. LESS:
  1092. For L=1 To NP
  1093.    TWORTH
  1094.    TW(L)=WORTH
  1095. Next 
  1096. LEAST=1
  1097. For X=1 To NP-1
  1098.    If TW(LEAST)>TW(X+1)
  1099.       LEAST=X+1
  1100.    End If 
  1101. Next X
  1102. L=LEAST-1
  1103. If L=0
  1104.    L=NP
  1105. End If 
  1106. Return 
  1107.  
  1108. PMAUCTION:
  1109. LOKATE[23,12]
  1110. CHPRT["Auction"]
  1111. LOKATE[23,14]
  1112. CHPRT[Pen$(PCOLOR(PMS(X)))+PROP$(PMS(X))+Pen$(14)+" will be auctioned off"+Space$(6)]
  1113. LOKATE[23,15]
  1114. CHPRT["to the highest bidder."]
  1115. Wait 50
  1116. CLRINFO
  1117. PRTINFO[PPOS(L)]
  1118. PM2=L
  1119. PM3=PPOS(L)
  1120. L=Rnd(NP-1)+1
  1121. PPOS(L)=PMS(X)
  1122. PM1=1
  1123. COMEONALONG
  1124. PM1=0
  1125. L=PM2
  1126. PPOS(L)=PM3
  1127. Return 
  1128.  
  1129. INJAIL:
  1130. IJX=0
  1131. Inc JAILOUT(L)
  1132. CLRINFO
  1133. LOKATE[23,12]
  1134. CHPRT["In Jail"]
  1135. Rem get out of jail free card
  1136. If GOOJFCC=L or GOOJFC=L
  1137.    Ink 0
  1138.    Bar 182,104 To 560,167
  1139.    Wait Vbl 
  1140.    LOKATE[23,17]
  1141.    CHPRT["You have a 'Get Out Of Jail Free' card."]
  1142.    LOKATE[23,19]
  1143.    CHPRT["Do you wish to use it? (Y/n) "]
  1144.    Clear Key 
  1145.    IJKEY:
  1146.    If COMPPLY(L)=1
  1147.       If PP(L)=3 and JAILOUT(L)<3
  1148.          Goto JAIL3
  1149.       End If 
  1150.       Wait 3*DEL
  1151.       Clear Key 
  1152.       Put Key "y"
  1153.    End If 
  1154.    KEYGET
  1155.    If A$=Chr$(13)
  1156.       A$="y"
  1157.    End If 
  1158.    LOKATE[23,20]
  1159.    CHPRT[A$]
  1160.    A$=Lower$(A$)
  1161.    If A$="y"
  1162.       If GOOJFCC=L
  1163.          GOOJFCC=0
  1164.          Screen 2
  1165.          Ink 11
  1166.          Paint 180,(-50+(50*BVD(L)+23)),1
  1167.          Ink 14
  1168.          Screen 0
  1169.       Else 
  1170.          GOOJFC=0
  1171.          Screen 2
  1172.          Ink 11
  1173.          Paint 180,(-50+(50*BVD(L)+17)),1
  1174.          Ink 14
  1175.          Screen 0
  1176.       End If 
  1177.       PPOS(L)=11
  1178.       Bob L,BX(11),BY(11),PLPC(L)
  1179.       Screen 2
  1180.       Bob L+4,SX(11),SY(11),DLPC(L)
  1181.       Screen 0
  1182.       Wait Vbl 
  1183.       JAILOUT(L)=0
  1184.       IJX=1
  1185.       Return 
  1186.    End If 
  1187. End If 
  1188.  
  1189. Rem pay $50
  1190. If JAILOUT(L)<3
  1191.    Ink 0
  1192.    Bar 182,104 To 560,167
  1193.    Wait Vbl 
  1194.    LOKATE[23,17]
  1195.    CHPRT["Do you want to pay "+C$+Str$(50*QQ)+" to get out?"]
  1196.    LOKATE[23,18]
  1197.    CHPRT["(Y/n)"]
  1198.    Clear Key 
  1199.    IJKEY2:
  1200.    If COMPPLY(L)=1
  1201.       If PM(L)<=50
  1202.          Clear Key 
  1203.          Put Key "n"
  1204.          Goto JAIL4
  1205.       End If 
  1206.       If PP(L)<>3
  1207.          Wait 3*DEL
  1208.          JUNK=0
  1209.          For J=11 To 21
  1210.             JUNK=JUNK+HOUSE(J)
  1211.          Next J
  1212.          If PM(L)>50 and JUNK<10
  1213.             Clear Key 
  1214.             Put Key "y"
  1215.          Else 
  1216.             Clear Key 
  1217.             Put Key "n"
  1218.          End If 
  1219.          JUNK=0
  1220.       Else 
  1221.          JAIL3:
  1222.          JUNK=0
  1223.          For J=1 To 40
  1224.             If PRICE(J)>0 and PROPOWN(J)=0
  1225.                JUNK2=PROPOWN(SET1(J)) : JUNK3=PROPOWN(SET2(J))
  1226.                If PM$="y"
  1227.                   If JUNK2=0 or JUNK3=0
  1228.                      JUNK=JUNK+1
  1229.                   End If 
  1230.                End If 
  1231.                If JUNK2=JUNK3
  1232.                   JUNK=JUNK+1
  1233.                End If 
  1234.             End If 
  1235.          Next J
  1236.          If JUNK>0
  1237.             Clear Key 
  1238.             Put Key "y"
  1239.          Else 
  1240.             Clear Key 
  1241.             Put Key "n"
  1242.             If GOOJFC=L or GOOJFCC=L
  1243.                Wait 3*DEL
  1244.                Ink 0
  1245.                Bar 182,104 To 560,167
  1246.                Wait Vbl 
  1247.                LOKATE[23,17]
  1248.                CHPRT["Do you want to pay "+C$+Str$(50*QQ)+" to get out?"]
  1249.                LOKATE[23,18]
  1250.                CHPRT["(Y/n)"]
  1251.                Clear Key 
  1252.                Put Key "n"
  1253.                Wait 3*DEL
  1254.             End If 
  1255.          End If 
  1256.          JUNK=0 : JUNK2=0 : JUNK3=0
  1257.       End If 
  1258.    End If 
  1259.    JAIL4:
  1260.    KEYGET
  1261.    If A$=Chr$(13)
  1262.       A$="y"
  1263.    End If 
  1264.    LOKATE[23,20]
  1265.    CHPRT[A$]
  1266.    A$=Lower$(A$)
  1267.    If A$="y"
  1268.       PM(L)=PM(L)-50
  1269.       UDATEMONEY
  1270.       PPOS(L)=11
  1271.       IJX=2
  1272.       Bob L,BX(11),BY(11),PLPC(L)
  1273.       Screen 2
  1274.       Bob L+4,SX(11),SY(11),DLPC(L)
  1275.       Screen 0
  1276.       Wait Vbl 
  1277.       JAILOUT(L)=0
  1278.       Return 
  1279.    End If 
  1280. End If 
  1281.  
  1282. Rem try to roll doubles
  1283. D1=Rnd(5)+1 : D2=Rnd(5)+1 : ROL=D1+D2
  1284. If QD$="n"
  1285.    DICEROLL
  1286. End If 
  1287. Paste Bob 1,1,D1+19 : Paste Bob 20,30,D2+19
  1288. Screen 2
  1289. Paste Bob 472,30,D1+97 : Paste Bob 530,30,D2+103
  1290. Screen 0
  1291. Wait Vbl 
  1292. If D1=D2
  1293.    PPOS(L)=11
  1294.    IJX=3
  1295.    JAILOUT(L)=0
  1296.    Return 
  1297. End If 
  1298. IJX=0
  1299. Ink 0
  1300. Bar 182,104 To 560,167
  1301. Boom 
  1302. LOKATE[23,17]
  1303. Wait Vbl 
  1304. CHPRT["Sorry,"]
  1305. LOKATE[23,18]
  1306. CHPRT["You didn't roll doubles"]
  1307. If JAILOUT(L)=3
  1308.    LOKATE[23,19]
  1309.    QQUEST[50]
  1310.    CHPRT["You pay "+Pen$(2)+C$+QQ$]
  1311.    DPEN[14]
  1312.    PPOS(L)=11
  1313.    IJX=3
  1314.    JAILOUT(L)=0
  1315.    PM(L)=PM(L)-50
  1316. End If 
  1317. Wait 6*DEL
  1318. CLRINFO
  1319. Return 
  1320.  
  1321. JAIL:
  1322. DUBBLE=0
  1323. JX=(Rnd(2)+1)
  1324. On JX Proc M1,M2,M3
  1325. If PPOS(L)<11
  1326.    For J=PPOS(L)-1 To 1 Step -1 : K=J
  1327.       Bob L,BX(K),BY(K),PLPC(L)
  1328.       Screen 2
  1329.       Bob L+4,SX(K),SY(K),DLPC(L)
  1330.       Play %100,90,2
  1331.       Play Off 
  1332.       Screen 0
  1333.       Wait DEL
  1334.    Next J
  1335.    Bob L,BX(40),BY(40),Hrev(PLPC(L))
  1336.    Screen 2
  1337.    Bob L+4,SX(40),SY(40),Hrev(DLPC(L))
  1338.    Play %100,90,2
  1339.    Play Off 
  1340.    Screen 0
  1341.    Wait DEL
  1342.    PPOS(L)=40
  1343. End If 
  1344. If PPOS(L)>11
  1345.    For J=PPOS(L)-1 To 11 Step -1 : K=J
  1346.       If K>21
  1347.          Bob L,BX(K),BY(K),Hrev(PLPC(L))
  1348.          Screen 2
  1349.          Bob L+4,SX(K),SY(K),Hrev(DLPC(L))
  1350.       Else 
  1351.          Bob L,BX(K),BY(K),PLPC(L)
  1352.          Screen 2
  1353.          Bob L+4,SX(K),SY(K),DLPC(L)
  1354.       End If 
  1355.       Play %100,90,2
  1356.       Play Off 
  1357.       Screen 0
  1358.       Wait DEL
  1359.    Next J
  1360. End If 
  1361. Wait DEL
  1362. Bob L,BX(41),BY(41),PLPC(L)
  1363. Screen 2
  1364. Bob L+4,SX(41),SY(41),DLPC(L)
  1365. Screen 0
  1366. Wait Vbl 
  1367. Play %100,90,2
  1368. Play Off 
  1369. PPOS(L)=41
  1370. CLRINFO
  1371. Wait Vbl 
  1372. PRTINFO[41]
  1373. UDATEPROP
  1374. Return 
  1375.  
  1376. INFO:
  1377. JUNK1=43 : JUNK2=44
  1378. If DL$="y"
  1379.    JUNK1=41 : JUNK2=42
  1380. End If 
  1381. Repeat 
  1382.    DPEN[14]
  1383.    Gosub CLICK
  1384.    LOKATE[23,12]
  1385.    DPEN[PCOLOR(X)]
  1386.    If D3=0
  1387.       If X=45
  1388.          D3=1
  1389.          PROP$(46)="The other one."
  1390.       End If 
  1391.       If X=46
  1392.          D3=1
  1393.          PROP$(45)="The other one."
  1394.       End If 
  1395.    End If 
  1396.    If DL$="n" or X<41
  1397.       CHPRT[PROP$(X)]
  1398.    End If 
  1399.    DPEN[14]
  1400.    If PRICE(X)>0
  1401.       LOKATE[23,13] : QQUEST[PRICE(X)] : CHPRT["Price "+C$+QQ$]
  1402.    End If 
  1403.    If X=39
  1404.       LOKATE[23,14]
  1405.       If COUNTRY=1 or COUNTRY=8 or COUNTRY=9
  1406.          CHPRT["Pay $75"]
  1407.       Else 
  1408.          QQUEST[100]
  1409.          CHPRT["Pay "+C$+QQ$]
  1410.       End If 
  1411.    End If 
  1412.    If PRICE(X)>0
  1413.       QQUEST[RENT(X,0)]
  1414.       If RENT(X,0)<999
  1415.          LOKATE[23,14] : CHPRT["Rent "+C$+QQ$+"     Owner - "+Pen$(PC(PROPOWN(X)))+PL$(PROPOWN(X))]
  1416.       Else 
  1417.          LOKATE[23,14] : CHPRT["Owner - "+Pen$(PC(PROPOWN(X)))+PL$(PROPOWN(X))]
  1418.       End If 
  1419.    End If 
  1420.    DPEN[14]
  1421.    If RENT(X,1)<>0
  1422.       LOKATE[23,15] : QQUEST[RENT(X,1)] : CHPRT["With one house    ="+QQ$+" ."]
  1423.       LOKATE[23,16] : QQUEST[RENT(X,2)] : CHPRT["With two houses   ="+QQ$+" ."]
  1424.       LOKATE[23,17] : QQUEST[RENT(X,3)] : CHPRT["With three houses ="+QQ$+" ."]
  1425.       If QS$="n"
  1426.          LOKATE[23,18] : QQUEST[RENT(X,4)] : CHPRT["With four houses  ="+QQ$+" ."]
  1427.       End If 
  1428.       LOKATE[23,19] : QQUEST[RENT(X,5)] : CHPRT["With Hotel        ="+QQ$+" ."]
  1429.       LOKATE[23,20] : QQUEST[HOUSECOST(X)] : CHPRT["Houses cost "+C$+QQ$+" each."]
  1430.    End If 
  1431.    If X=5
  1432.       LOKATE[23,15]
  1433.       If CH$="y"
  1434.          CHPRT["Pay 10%"]
  1435.          LOKATE[23,16] : CHPRT["or"]
  1436.          LOKATE[23,17] : CHPRT[C$+"200"]
  1437.       Else 
  1438.          QQUEST[200]
  1439.          CHPRT[" Pay "+C$+QQ$]
  1440.       End If 
  1441.    End If 
  1442.    If X=13 or X=29
  1443.       QQUEST[4]
  1444.       LOKATE[23,15] : CHPRT["If one 'Utility' is owned rent is "+QQ$]
  1445.       LOKATE[23,16] : CHPRT["times amount shown on dice."]
  1446.       QQUEST[10]
  1447.       LOKATE[23,18] : CHPRT["If both 'Utilities' are owned rent is "+QQ$]
  1448.       LOKATE[23,19] : CHPRT["times amount shown on dice."]
  1449.    End If 
  1450.    If X=6 or X=16 or X=26 or X=36
  1451.       LOKATE[23,15] : QQUEST[25] : CHPRT["Rent "+C$+QQ$+"."]
  1452.       LOKATE[23,16]
  1453.       If COUNTRY<>2 and COUNTRY<>3 and COUNTRY<>8 and COUNTRY<>9
  1454.          QQUEST[50] : CHPRT["If 2 R.R.'s are owned      "+QQ$+"."]
  1455.       Else 
  1456.          If COUNTRY=2 or COUNTRY=3
  1457.             CHPRT["If 2 railways are owned    50."]
  1458.          End If 
  1459.          If COUNTRY=8
  1460.             CHPRT["If 2 fighters are owned    50."]
  1461.          End If 
  1462.          If COUNTRY=9
  1463.             CHPRT["If 2 speedways are owned   50."]
  1464.          End If 
  1465.       End If 
  1466.       LOKATE[23,17] : QQUEST[100] : CHPRT["If 3  ''    ''   ''       "+QQ$+"."]
  1467.       LOKATE[23,18] : QQUEST[200] : CHPRT["If 4  ''    ''   ''       "+QQ$+"."]
  1468.    End If 
  1469. Until X=JUNK1 or X=JUNK2
  1470. JUNK1=0 : JUNK2=0
  1471. Return 
  1472.  
  1473. ZON:
  1474. Reserve Zone 
  1475. Reserve Zone 47
  1476. If DL$="n"
  1477.    Restore SPOTDATA
  1478.    For J=1 To 47
  1479.       Read X1,Y1,X2,Y2
  1480.       Set Zone J,X1,Y1 To X2,Y2
  1481.    Next J
  1482. Else 
  1483.    Restore DLSPOTDATA
  1484.    For J=1 To 47
  1485.       Read X1,Y1,X2,Y2
  1486.       Set Zone J,X1,Y1 To X2,Y2
  1487.    Next J
  1488. End If 
  1489. Restore CCDATA
  1490. Return 
  1491. End 
  1492.  
  1493. PIECENAMEDATA:
  1494. Data "Car ","Battleship","Horse","Dog "
  1495. Data "Shoe","WheelBarrow","Iron","Thimble"
  1496. Data "TopHat","Train","Cannon","Boing"
  1497. Data "MoneyBag","PiggyBank","AirPlane","Teapot"
  1498.  
  1499. CHIPNAMEDATA:
  1500. Data "Portia","Daphne","Agnus","Paula","Denise","Fleecy"
  1501. Data "Gary","Buster","Alice","McEwen","Amy","Petro"
  1502.  
  1503. TITLEHOTSPOTS:
  1504. Data 432,56,490,68,491,56,549,68
  1505. Data 432,69,490,81,491,69,549,81
  1506. Data 432,82,490,94,491,82,549,94
  1507. Data 432,95,490,107,491,95,549,107
  1508. Data 432,108,490,120,491,108,549,120
  1509. Data 432,121,490,133,491,121,549,133
  1510. Data 432,134,490,146,491,134,549,146
  1511. Data 432,147,490,159,491,147,549,159
  1512. Data 432,160,490,172,491,160,549,172
  1513. Data 432,173,490,185,491,173,549,185
  1514. Data 432,186,490,198,491,186,549,198
  1515.  
  1516. Data 88,142,146,153,88,154,146,165,88,166,146,177,88,178,146,189
  1517. Data 18,64,77,75,18,79,77,90,577,185,635,197
  1518. Data 18,95,77,106
  1519.  
  1520. Data 10,25,71,41,72,25,132,41,133,25,194,41
  1521. Data 194,25,254,41,255,25,315,41,316,25,376,41,377,25,437,41
  1522. Data 438,25,498,41,499,25,558,41
  1523.  
  1524. Data 8,117,124,128
  1525. Data 0,0,639,199
  1526.  
  1527. PICKPIECEDATA:
  1528. Data 208,52,262,74,264,52,318,74,320,52,372,74
  1529. Data 208,76,262,98,264,76,318,98,320,76,372,98
  1530. Data 208,100,262,123,264,100,318,123,320,100,372,123
  1531. Data 374,52,428,74,374,76,428,98,374,100,428,123
  1532. Data 208,125,262,148,264,125,318,148,320,125,372,148
  1533. Data 375,125,428,148
  1534.  
  1535. Data 502,93,560,105
  1536.  
  1537. Rem X and Y's for "Pick Your Piece"
  1538.  
  1539. Data 214,50,262,73,268,50,316,73,320,50,368,73,214,76,262,99
  1540. Data 268,76,316,99,320,76,368,99,214,102,262,125,268,102,316,125
  1541. Data 322,102,368,125,374,50,422,73,374,76,422,99,374,102,422,125
  1542. Data 214,128,262,151,268,128,316,151,320,128,368,151,374,128,422,151
  1543.  
  1544. Data 292,160,350,172
  1545.  
  1546. Rem Deluxe version 
  1547.  
  1548. PIECEPOSDATA:
  1549. Data 292,192,265,192,244,192,224,192,203,192
  1550. Data 176,192,149,192,128,192,107,192,86,192
  1551.  
  1552. Data 52,192,52,165,52,149,52,131,52,117
  1553. Data 52,99,52,79,52,65,52,50,52,35
  1554.  
  1555. Data 58,17,104,12,125,12,146,12,167,12
  1556. Data 194,12,221,12,242,12,263,12,285,12
  1557.  
  1558. Data 312,17,316,35,316,50,316,65,316,79
  1559. Data 316,99,316,118,316,133,316,149,316,165
  1560.  
  1561. Data 64,178
  1562. Rem X and Y positions of pieces on board   
  1563.  
  1564. Data 624,192,580,196,540,196,500,196,460,196
  1565. Data 420,196,380,196,340,196,300,196,260,196
  1566.  
  1567. Data 220,199,210,173,210,156,210,139,210,122
  1568. Data 210,104,210,88,210,70,210,54,210,37
  1569.  
  1570. Data 220,20,260,18,300,18,340,18,380,18
  1571. Data 420,18,460,18,500,18,540,18,580,18
  1572.  
  1573. Data 624,17,628,37,628,54,628,71,628,88
  1574. Data 628,106,628,122,628,139,628,157,628,173
  1575.  
  1576. Data 224,189
  1577. Rem Deluxe positions 
  1578.  
  1579. PROPDATA:
  1580. Data "Go",,,,,,,,,4,,,,0.1,0,0
  1581. Data "Mediterranean Ave.",60,2,10,30,90,160,250,50,6,4,4,120,1.5,14,29
  1582. Data "Community Chest",,1000,,,,,,,9,,,,0.1,0,0
  1583. Data "Baltic Ave.",60,4,20,60,180,320,450,50,6,2,2,120,1,14,34
  1584. Data "Income Tax",,1001,,,,,,,14,,,,0.1,0,0
  1585. Data "Reading Railroad",200,1002,,,,,,,10,16,36,800,2.9,74,8
  1586. Data "Oriental Ave.",100,6,30,90,270,400,550,50,3,9,10,320,1,38,30
  1587. Data "Chance",,1003,,,,,,,4,,,,0.1,0,0
  1588. Data "Vermont Ave.",100,6,30,90,270,400,550,50,3,7,10,320,1,38,34
  1589. Data "Connecticut Ave.",120,8,40,100,300,450,600,50,3,7,9,320,1,38,40
  1590.  
  1591. Data "Just Visiting",,1004,,,,,,,8,,,,0.1,0,0
  1592. Data "St. Charles Place",140,10,50,150,450,625,750,100,7,14,15,440,2,64,30
  1593. Data "Electric Company",150,1005,,,,,,,14,29,29,300,1,132,17
  1594. Data "States Ave.",140,10,50,150,450,625,750,100,7,12,15,440,1.5,64,34
  1595. Data "Virginia Ave.",160,12,60,180,500,700,900,100,7,14,12,440,1.5,64,40
  1596. Data "Pennsylvania R.R.",200,1002,,,,,,,10,6,26,800,2.4,114,8
  1597. Data "St. James Place",180,14,70,200,550,750,950,100,5,19,20,560,3,88,30
  1598. Data "Community Chest",,1000,,,,,,,9,,,,0.1,0,0
  1599. Data "Tennessee Ave.",180,14,70,200,550,750,950,100,5,17,20,560,3,88,34
  1600. Data "New York Ave.",200,16,80,220,600,800,1000,100,5,17,19,560,2.5,88,40
  1601.  
  1602. Data "Free Parking",,1006,,,,,,,4,,,,0.1,0,0
  1603. Data "Kentucky Ave.",220,18,90,250,700,875,1050,150,4,24,25,680,1.5,114,30
  1604. Data "Chance",,1003,,,,,,,4,,,,0.1,0,0
  1605. Data "Indiana Ave.",220,18,90,250,700,875,1050,150,4,22,25,680,1.5,114,34
  1606. Data "Illinois Ave.",240,20,100,300,750,925,1100,150,4,22,24,680,2.5,114,40
  1607. Data "B. & O. Railroad",200,1002,,,,,,,10,36,16,800,2.4,146,8
  1608. Data "Atlantic Ave.",260,22,110,330,800,975,1150,150,9,28,30,800,1,138,30
  1609. Data "Ventnor Ave.",260,22,110,330,800,975,1150,150,9,27,30,800,1,138,34
  1610. Data "Water Works",150,1005,,,,,,,14,13,13,,1,154,21
  1611. Data "Marvin Gardens",280,24,120,360,850,1025,1200,150,9,27,28,800,1,138,40
  1612.  
  1613. Data "GO TO JAIL",,1007,,,,,,,1,,,,0.1,0,0
  1614. Data "Pacific Ave.",300,26,130,390,900,1100,1275,200,2,33,35,920,1,163,30
  1615. Data "No. Carolina Ave.",300,26,130,390,900,1100,1275,200,2,32,35,920,1,163,34
  1616. Data "Community Chest",,1000,,,,,,,9,,,,0.1,0,0
  1617. Data "Pennsylvania Ave.",320,28,150,450,1000,1200,1400,200,2,32,33,920,1,163,40
  1618. Data "Short Line R.R.",200,1002,,,,,,,10,26,6,800,2.4,186,8
  1619. Data "Chance",,1003,,,,,,,4,,,,0.1,0,0
  1620. Data "Park Place",350,35,175,500,1100,1300,1500,200,1,40,40,750,1,186,30
  1621. Data "Luxury Tax",,75,,,,,,,14,,,,0.1,0,0
  1622. Data "Boardwalk",400,50,200,600,1400,1700,2000,200,1,38,38,750,2,186,34
  1623.  
  1624. Data "In Jail",,1008,,,,,,,14,,,,0.1,0,0
  1625. Data "Just Visiting",,1004,,,,,,,8,,,,0.1,0,0
  1626. Data "OK",,,,,,,,,2,,,,0.1,0,0
  1627. Data "Cancel",,,,,,,,,4,,,,0.1,0,0
  1628. Data "One of the dice.",,,,,,,,,14,,,,0.1,0,0
  1629. Data "One of the dice.",,,,,,,,,14,,,,0.1,0,0
  1630. Data "Click on a property.",,,,,,,,,4,,,,0.1,0,0
  1631.  
  1632. Rem property data
  1633. Rem format= Data name,price,rent,w1house,w2house,w3house,w4house,whotel,hcost,color,set1,set2  
  1634. Rem if rent >999 then it's a special property
  1635. Rem 18 chars max 
  1636.  
  1637. SPOTDATA:
  1638. Data 572,173,639,199,532,172,570,198,490,172,530,198,448,172,488,198,406,172,446,198
  1639. Data 340,172,404,198,298,172,337,198,256,172,295,198,214,172,254,198,174,172,211,198
  1640.  
  1641. Data 104,173,121,199,104,159,171,171,104,139,171,157,104,125,171,137,104,111,171,123
  1642. Data 104,87,171,109,104,73,171,85,104,58,171,71,104,43,171,56,104,28,171,41
  1643.  
  1644. Data 104,0,169,26,172,0,211,26,214,0,254,26,256,0,295,26,298,0,337,26
  1645. Data 340,0,404,26,407,0,445,26,448,0,485,26,488,0,531,26,535,0,571,26
  1646.  
  1647. Data 574,0,639,26,572,28,639,41,572,43,639,56,572,58,639,71,572,73,639,86
  1648. Data 572,88,639,111,572,113,639,126,572,128,639,141,572,143,639,156,572,158,639,171
  1649.  
  1650. Data 124,173,171,191,102,192,171,199,20,153,78,165,20,173,78,185
  1651.  
  1652. Data 1,1,54,25,20,30,73,54,0,0,639,199
  1653. Rem hot spot data
  1654.  
  1655. DLSPOTDATA:
  1656. Data 600,182,639,199,560,182,600,199,520,182,560,199,480,182,520,199,440,182,480,199
  1657. Data 400,182,440,199,360,182,400,199,320,182,360,199,280,182,320,199,240,182,280,199
  1658.  
  1659. Data 200,182,240,199,200,165,240,182,200,148,240,165,200,131,240,148,200,114,240,131
  1660. Data 200,97,240,114,200,80,240,97,200,63,240,80,200,46,240,63,200,29,240,46
  1661.  
  1662. Data 200,11,240,29,240,11,280,29,280,11,320,29,320,11,360,29,360,11,400,29
  1663. Data 400,11,440,29,440,11,480,29,480,11,520,29,520,11,560,29,560,11,600,29
  1664.  
  1665. Data 600,11,639,29,600,29,639,46,600,46,693,63,600,63,639,80,600,80,639,97
  1666. Data 600,97,639,114,600,114,639,131,600,131,639,148,600,148,639,165,600,165,639,182
  1667.  
  1668. Data 198,0,268,10,269,0,348,10,349,0,418,10,350,0,482,10,483,0,542,10,543,0,639,10
  1669.  
  1670. Data 0,0,639,199
  1671. Rem Deluxe data
  1672.  
  1673. CCDATA:
  1674. Data "FROM SALE OF STOCK YOU GET "+C$+JUNK1$,,,45,,1,380,8,630,94
  1675. Data "YOU INHERIT "+C$+JUNK2$,,,100,,2,6,3,239,101
  1676. Data "XMAS FUND MATURES",,"COLLECT "+C$+JUNK2$,100,,1,12,4,200,97
  1677. Data "INCOME TAX REFUND",,"COLLECT "+C$+JUNK3$,20,,2,246,3,428,100
  1678. Data "LIFE INSURANCE MATURES",,"COLLECT "+C$+JUNK2$,100,,1,466,109,626,194
  1679. Data "RECEIVE FOR SERVICES "+C$+JUNK4$,,,25,,1,12,105,232,194
  1680. Data "BANK ERROR IN YOUR FAVOR",,"COLLECT "+C$+JUNK5$,200,,3,10,105,216,192
  1681. Data "YOU HAVE WON 2ND PRIZE IN A BEAUTY CONTEST",,"COLLECT "+C$+JUNK6$,10,,3,486,1,636,96
  1682. Data "PAY SCHOOL TAX OF "+C$+JUNK7$,,,-150,,1,236,100,454,197
  1683. Data "PAY HOSPITAL "+C$+JUNK2$,,,-100,,2,10,106,240,192
  1684. Data "DOCTOR'S FEE",,"PAY "+C$+JUNK8$,-50,,3,254,3,468,89
  1685. Data "GET OUT OF JAIL, FREE","THIS CARD MAY BE KEPT UNTIL NEEDED OR SOLD",,,1,3,10,9,240,80
  1686. Data "Grand Opera Opening","COLLECT "+C$+JUNK8$+" FROM EVERY PLAYER","FOR OPENING NIGHT SEATS",,2,2,454,7,624,98
  1687. Data "YOU ARE ASSESSED FOR STREET REPAIRS",""+C$+JUNK9$+" PER HOUSE",""+C$+JUNK10$+" PER HOTEL",,3,1,208,4,372,99
  1688. Data "GO TO JAIL - Go Directly to Jail","DO NOT PASS GO","DO NOT COLLECT "+C$+JUNK5$,,4,2,248,101,456,188
  1689. Data "ADVANCE TO GO",,"(COLLECT "+C$+JUNK5$+")",,5,3,258,106,486,195
  1690. Rem Community Chest data 
  1691. Rem format = text,money(+or-), move  -  0=normal 1or higher = special like 
  1692. Rem Goto jail or property tax
  1693.  
  1694. CHANCEDATA:
  1695. Data "BANK PAYS YOU DIVIDEND OF "+C$+JUNK1$,,,,50,,4,6,4,346,91
  1696. Data "YOUR BUILDING AND LOAN MATURES",,"COLLECT "+C$+JUNK2$,,150,,2,4,94,150,188
  1697. Data "PAY POOR TAX OF "+C$+JUNK3$,,,,-15,,2,154,92,314,190
  1698.  
  1699. Data "Advance token to the nearest Railroad and"
  1700. Data "pay owner Twice the Rental to which he is"
  1701. Data "otherwise entitled. - If Railroad is"
  1702. Data "unowned, you may buy it from the Bank.",,1,1,4,2,298,83
  1703.  
  1704. Data "Advance token to the nearest Railroad and"
  1705. Data "pay owner Twice the Rental to which he is"
  1706. Data "otherwise entitled. - If Railroad is"
  1707. Data "unowned, you may buy it from the Bank.",,1,1,4,2,298,83
  1708.  
  1709. Data "THIS CARD MAY BE KEPT UNTIL NEEDED OR SOLD",,"GET OUT OF JAIL FREE",,,2,1,430,91,634,177
  1710. Data "GO BACK 3 SPACES",,,,,3,3,10,3,312,100
  1711. Data "You Have Been ELECTED CHAIRMAN OF THE BOARD",,"PAY EACH PLAYER "+C$+JUNK1$,,,4,1,2,90,202,163
  1712. Data "GO DIRECTLY TO JAIL","DO NOT PASS GO","DO NOT COLLECT "+C$+JUNK4$,,,5,4,0,95,344,172
  1713. Data "ADVANCE TO GO",,"(COLLECT "+C$+JUNK4$+")",,,6,2,332,99,594,194
  1714. Data "Make General Repairs On All Your Property","FOR EACH HOUSE PAY "+C$+JUNK5$,"FOR EACH HOTEL "+C$+JUNK6$,,,7,1,468,1,636,86
  1715. Data "ADVANCE TO ST. CHARLES PLACE",,"IF YOU PASS GO","COLLECT "+C$+JUNK4$,,8,2,2,1,302,74
  1716. Data "TAKE A RIDE ON THE READING",,"IF YOU PASS GO","COLLECT "+C$+JUNK4$,,9,2,308,2,520,94
  1717.  
  1718. Data "ADVANCE TOKEN TO NEAREST UTILITY."
  1719. Data "If UNOWNED you may buy it from the bank."
  1720. Data "If OWNED, throw dice and pay owner"
  1721. Data "a total ten times the amount thrown",,10,1,300,0,456,81
  1722.  
  1723. Data "TAKE A WALK ON THE BOARDWALK",,"ADVANCE TOKEN TO BOARDWALK",,,11,3,232,97,568,198
  1724. Data "ADVANCE TO ILLINOIS AVE.",,,,,12,1,208,84,416,172
  1725. Rem Chance data
  1726. Rem format is same as Community Chest
  1727.  
  1728. GODATA:
  1729. Data 572,174
  1730. Data 572,188
  1731. Data 614,174
  1732. Data 614,188
  1733. Data 610,190
  1734. Data 630,190
  1735. Data 610,198
  1736. Data 630,198
  1737.  
  1738. RRDATA:
  1739. Data 25,50,100,200
  1740.  
  1741. CUTE_REMARKS_WHEN_PASS_SOMEONE_IN_JAIL_DATA:
  1742. Data "Bake me a cake with a file in it."
  1743. Data "Call my lawyer."
  1744. Data "I hate wearing stripes."
  1745. Data "What are you looking at?!?!"
  1746. Data "Just call me #67312478."
  1747. Data "'Iron bars do not a prison make'"
  1748. Data "I was framed I tell you!"
  1749. Data "Where's Perry Mason when you need him?"
  1750.  
  1751. BRITISH_VERSION_DATA:
  1752. Data "Go","Old Kent Road","Community Chest","Whitechapel Road","Income Tax"
  1753. Data "King's Cross Stat.","Angel Islington","Chance","Euston Road"
  1754. Data "Pentonville Road"
  1755.  
  1756. Data "Just Visiting","Pall Mall","Electric Company","Whitehall"
  1757. Data "Northumberland Ave","Marylebone Station","Bow Street","Community Chest"
  1758. Data "Marlborough Street","Vine Street"
  1759.  
  1760. Data "Free Parking","Strand","Chance","Fleet Street","Trafalgar Square"
  1761. Data "Fenchurch St Stat.","Leicester Square","Coventry Street","Water Works"
  1762. Data "Picadilly"
  1763.  
  1764. Data "Go To Jail","Regent Street","Oxford Street","Community Chest","Bond Street"
  1765. Data "Liverpool St Stat.","Chance","Park Lane","Super Tax","Mayfair"
  1766. Data "In Jail"
  1767.  
  1768. AUSTRALIAN_VERSION_DATA:
  1769. Data "Go","Todd Street","Community Chest","Smith Street","Income Tax"
  1770. Data "Perth Station","Salamanca Place","Chance","Davey Street","Macquarie Street"
  1771.  
  1772. Data "Just Visiting","William Street","Australia Post","Barrack Street"
  1773. Data "Hay Street","Adelaide Station","North Terrace","Community Chest"
  1774. Data "Victoria Square","Rundle Mall"
  1775.  
  1776. Data "Free Parking","Stanley Street","Chance","Petries Bight","Wickham Terrace"
  1777. Data "Flinders St Stat.","Collins Street","Elizabeth Street"
  1778. Data "Telecom Australia","Bourke Street"
  1779.  
  1780. Data "Go To Jail","Castlereagh Street","George Street","Community Chest"
  1781. Data "Pitt Street","Sydney Station","Chance","Flinders Way","Sales Tax"
  1782. Data "King's Avenue","In Jail"
  1783.  
  1784. SWEDISH_VERSION_DATA:
  1785. Data "G�","V�sterl�nggatan","Allm�nning","Hornsgatan","Inkomstskatt"
  1786. Data "S�dra Station","Folkungagatan","Chans","G�tgatan","Ringv�gen"
  1787.  
  1788. Data "I F�ngelse p�Bes�k","S:t Eriksgatan","Elverket","Odengatan"
  1789. Data "Vallhallav�gen","�stra Station","Sturegatan","Allm�nning"
  1790. Data "Karlav�gen","Narvav�gen"
  1791.  
  1792. Data "Parkering","Strandv�gen","Chans","Kungstr�dg�rdsg","Hamngatan"
  1793. Data "Central Station","Vasagatan","Kungsgatan","Vattenledningsverk"
  1794. Data "Stureplan"
  1795.  
  1796. Data "G� i f�ngelse","Gustav Adolfs Torg","Drottninggatan","Allm�nning"
  1797. Data "Diplomatstaden","Norra Station","Chans","Centrum","Extra skatt","Norrmalmstorg"
  1798. Data "F�ngelse"
  1799.  
  1800. GERMAN_VERSION_DATA:
  1801. Data "Los","Badstra�e","Gemeinschaftsfled","Turmstra�e","Einkommenssteuer"
  1802. Data "S�dbahnhof","Chausseestra�e","?","Elisenstra�e","Poststra�e"
  1803.  
  1804. Data "nur zu Besuch","Seestra�e","Elektrowerk","Hafenstra�e","Neue Stra�e"
  1805. Data "Westbahnhoff","M�hlenstra�e","Gemeinschaftsfeld","Wiener Stra�e"
  1806. Data "Berliner Stra�e"
  1807.  
  1808. Data "Free Parking","Theaterstra�e","?","Museumsstra�e","Opernplatz","Nordbahnhof"
  1809. Data "Lessingstra�e","Schillerstra�e","Wasserwerk","Goethestra�e"
  1810.  
  1811. Data "Politz","Rathausplatz","Haupstra�e","Gemeinschaftsfeld","Bahnhofstra�e"
  1812. Data "Hauptbahnhof","?","Parkstra�e","Zusatzsteuer","Schlo�allee"
  1813. Data "Gef�ngnis"
  1814.  
  1815. ITALIAN_VERSION_DATA:
  1816. Data "VIA","Vicolo Corto","PROBABILITA`","Vicolo Stretto","TASSA PATRIMONIALE"
  1817. Data "Stazione Sud","Bastioni GranSasso","IMPREVISTI","Viale Monterosa"
  1818. Data "Viale Vesuvio"
  1819.  
  1820. Data "TRANSITO","Via Accademia","SOCIETA` ELETTRICA","Corso Ateneo"
  1821. Data "Piazza Universita`","Stazione Ovest","Via Verdi","PROBABILITA`"
  1822. Data "Corso Raffaello","Piazza Dante"
  1823.  
  1824. Data "PARCHEGGIOGRATUITO","Via Marco Polo","IMPREVISTI","Corso Magellano"
  1825. Data "Largo Colombo","Stazione Nord","Viale Costantino","Viale Traianto"
  1826. Data "SOCIETA` ACQUA","PiazzaGiullioCesar"
  1827.  
  1828. Data "VIA IN PRIGIONE!","Via Roma","Corso Impero","PROBABILITA`","Largo Augusto"
  1829. Data "Stazione Est","IMPREVISTI","Viale dei Giardini","TASSA SUL LUSSO"
  1830. Data "ParcoDellaVittoria"
  1831. Data "PRIGIONE"
  1832.  
  1833. FRENCH_VERSION_DATA:
  1834. Data "DEPART","Boul de Belleville","CaisseDeCommunaut�","Rue Lecourbe"
  1835. Data "ImportsSurLeRevenu","Gare Montparnasse","Rue Vaugirard","Chance"
  1836. Data "Rue de Courcelles","Ave.DeLaR�publique"
  1837.  
  1838. Data "Simple Visite","BoulDeLaR�publique","Compagnie/d'�lect."
  1839. Data "Avenue de Neuilly","Rue de Paradis","Gare de Lyon","Avenue Mozart"
  1840. Data "CaisseDeCommunaut�","Boulevard StMichel","Place Pigalle"
  1841.  
  1842. Data "Parc Gratiut","Avenue Matignon","Chance","Boul. Malherbes"
  1843. Data "Avenue HenriMartin","Gare du nord","Faubourg St-Honor�"
  1844. Data "Place de la Bourse","Compagnie des Eaux","Rue La Fayette"
  1845.  
  1846. Data "Allez en PRISON","Avenue de Breteuil","Avenue Foch","CaisseDeCommunaut�"
  1847. Data "Boul des Capucines","Gare St-Lazare","Chance"
  1848. Data "Ave Champs Elys�es","Taxe de Luxe","Rue de la Paix"
  1849. Data "Prison"
  1850.  
  1851. STARWARS_VERSION_DATA:
  1852. Data "Go","DAGOBAH-Swamp","<Rebel Symbol>","DAGOBAH-Yoda's Hut","Docking Tax"
  1853. Data "Tie Fighter","HOTH-Echo Base","<Imperial Symbol>","HOTH-Frozen Plains"
  1854. Data "HOTH-North Ridge"
  1855.  
  1856. Data "Just Visiting","TATOOINE-Lars Home","Reactor Core","TATOOINE-MosEisley"
  1857. Data "TATOOINE-Jabba's","Millenium Falcon","YAVIN 4-War Room"
  1858. Data "<Rebel Symbol>","YAVIN 4-Temple","YAVIN 4-Throne Rm."
  1859.  
  1860. Data "Free Parking","CLOUDCITY-Platform","<Imperial Symbol>"
  1861. Data "CLOUDCITY-Chamber","CLOUDCITY-Reactor"
  1862. Data "X-Wing Fighter","DEATH STAR-L. Bay","DEATH STAR-Throne"
  1863. Data "Moisture farm","DEATH STAR-Core"
  1864.  
  1865. Data "Go To Jail","ENDOR-Forest","ENDOR-Shield Gen.","<Rebel Symbol>"
  1866. Data "ENDOR-Ewok Village","Star Destroyer","<Imperial Symbol>"
  1867. Data "CORUSCANT-Monument","Bounty","CORUSCANT-Palace"
  1868. Data "In Jail"
  1869.  
  1870. NASCAR_VERSION_DATA:
  1871. Data "Go","46-First Union","Community Chest","96-Caterpillar","Black Flag"
  1872. Data "CaliforniaSpeedway","31-Lowe's","Chance"
  1873. Data "36-Skittles","29-Cartoon Network"
  1874.  
  1875. Data "Just Visiting","42-Bellsouth","The Phone Company","7 -QVC"
  1876. Data "4 -Kodak Gold Film","Talladega Speedway","18-Interstate Batt"
  1877. Data "Community Chest","99-Exide Batteries","16-Family Channel"
  1878.  
  1879. Data "Free Parking","8 -Circuit City","Chance","17-Parts America"
  1880. Data "30-Pennziol","Charlotte Speedway","28-Texaco","10-Tide"
  1881. Data "The Gas Company","88-FordQualityCare"
  1882.  
  1883. Data "Go To Jail","6 -Valvoline","5 -Kellogg's","Community Chest","94-McDonalds"
  1884. Data "Daytona Speedway","Chance","24-Du Pont","Luxury Suite","3 -Goodwrench"
  1885. Data "In Jail"
  1886.  
  1887. CUTEREMARK:
  1888. For CRJJ=1 To NP
  1889.    If PPOS(CRJJ)=41
  1890.       LOKATE[23,15]
  1891.       DPEN[PC(CRJJ)]
  1892.       CHPRT[PL$(CRJJ)+Pen$(14)+" says:   "]
  1893.       CRX=Rnd(NCR)+1
  1894.       LOKATE[23,16]
  1895.       DPEN[11]
  1896.       CHPRT[CR$(CRX)]
  1897.       DPEN[14]
  1898.       Wait 110
  1899.       Return 
  1900.    End If 
  1901. Next CRJJ
  1902. Return 
  1903.  
  1904. CCHEST:
  1905. CCSTART:
  1906. Inc CC
  1907. If CC>16
  1908.    CC=1
  1909.    SHUFFLECHEST
  1910. End If 
  1911. If CCSPEC(CC)=1 and GOOJFCC<>0
  1912.    Goto CCSTART
  1913. End If 
  1914. JUNK$="cc"
  1915. Gosub DLCC
  1916. JUNK$=""
  1917. Screen 2
  1918. Pen 0 : Paper 9
  1919. Screen 0
  1920. LOKATE[23,17]
  1921. CHPRT[CCHEST1$(CC)]
  1922. LOKATE[23,18]
  1923. CHPRT[CCHEST2$(CC)]
  1924. LOKATE[23,19]
  1925. CHPRT[CCHEST3$(CC)]
  1926. Screen 2
  1927. Pen 14 : Paper 0
  1928. Screen 0
  1929. PM(L)=PM(L)+CCMON(CC)
  1930. UDATEMONEY
  1931. If PARKING$="y" and CCMON(CC)<0
  1932.    PARKING=PARKING-CCMON(CC)
  1933. End If 
  1934. On CCSPEC(CC) Gosub CC1,CC2,CC3,CC4,CC5
  1935. If COMPPLY(L)=1
  1936.    Wait 6*DEL
  1937. End If 
  1938. Return 
  1939.  
  1940. CC1:
  1941. Rem get out of jail free card
  1942. GOOJFCC=L
  1943. Screen 2
  1944. Ink 9
  1945. Paint 180,(-50+(50*BVD(L)+23)),1
  1946. Ink 14
  1947. Screen 0
  1948. Return 
  1949.  
  1950. CC2:
  1951. Rem $50 from every player
  1952. PM(L)=PM(L)+(50*NP)
  1953. For CCJ=1 To NP
  1954.    PM(CCJ)=PM(CCJ)-50
  1955. Next CCJ
  1956. UDATEMONEY
  1957. Return 
  1958.  
  1959. CC3:
  1960. Rem street repairs 
  1961. HOT=0 : HOU=0
  1962. For SRJ=1 To 40
  1963.    If PROPOWN(SRJ)=L
  1964.       If HOUSE(SRJ)=5
  1965.          Inc HOT
  1966.       Else 
  1967.          HOU=HOU+HOUSE(SRJ)
  1968.       End If 
  1969.    End If 
  1970. Next SRJ
  1971. Screen 2
  1972. Pen 0 : Paper 9
  1973. Screen 0
  1974. LOKATE[23,18]
  1975. CHPRT["You own"+Str$(HOU)+" houses and"+Str$(HOT)+" hotels."]
  1976. LOKATE[23,19]
  1977. SRSUM=(HOU*40)+(HOT*115)
  1978. QQUEST[SRSUM]
  1979. CHPRT["You have to pay "+Pen$(2)+" "+C$+QQ$+Pen$(14)+"."]
  1980. DPEN[14]
  1981. Screen 2
  1982. Pen 14 : Paper 0
  1983. Screen 0
  1984. PM(L)=PM(L)-SRSUM
  1985. UDATEMONEY
  1986. If COMPPLY(L)=1
  1987.    Wait 12*DEL
  1988. End If 
  1989. Return 
  1990.  
  1991. CC4:
  1992. Rem go to jail 
  1993. Gosub JAIL
  1994. MOV=1
  1995. Return 
  1996.  
  1997. CC5:
  1998. Rem go to Go 
  1999. If FCR=2
  2000.    Wait 60
  2001. Else 
  2002.    Wait 6*DEL
  2003. End If 
  2004. ROL=41-PPOS(L)
  2005. Gosub MP
  2006. PPOS(L)=PPOS(L)+ROL : If PPOS(L)>40 Then PPOS(L)=PPOS(L)-40 : PM(L)=PM(L)+200
  2007. MOV=1
  2008. Return 
  2009.  
  2010. CHANCE:
  2011. CSTART:
  2012. Inc C
  2013. If C>16
  2014.    C=1
  2015.    SHUFFLECHANCE
  2016. End If 
  2017. If CSPEC(C)=2 and GOOJFC<>0
  2018.    Goto CSTART
  2019. End If 
  2020. JUNK$="c"
  2021. Gosub DLC
  2022. JUNK$=""
  2023. Screen 2
  2024. Pen 0 : Paper 5
  2025. Screen 0
  2026. LOKATE[23,16]
  2027. CHPRT[CHANCE1$(C)]
  2028. LOKATE[23,17]
  2029. CHPRT[CHANCE2$(C)]
  2030. LOKATE[23,18]
  2031. CHPRT[CHANCE3$(C)]
  2032. LOKATE[23,19]
  2033. CHPRT[CHANCE4$(C)]
  2034. Screen 2
  2035. Pen 14 : Paper 0
  2036. Screen 0
  2037. PM(L)=PM(L)+CMON(C)
  2038. UDATEMONEY
  2039. If PARKING$="y" and CMON(C)<0
  2040.    PARKING=PARKING-CMON(C)
  2041. End If 
  2042. On CSPEC(C) Gosub C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12
  2043. If COMPPLY(L)=1
  2044.    Wait 6*DEL
  2045. End If 
  2046. Return 
  2047.  
  2048. C1:
  2049. Rem advance token to nearest railroad
  2050. If FCR=2
  2051.    Wait 100
  2052. Else 
  2053.    Wait 10*DEL
  2054. End If 
  2055. MOV=2
  2056. If PPOS(L)=8 Then ROL=8
  2057. If PPOS(L)=23 Then ROL=3
  2058. If PPOS(L)=37 Then ROL=9
  2059. Gosub MP
  2060. PPOS(L)=PPOS(L)+ROL : If PPOS(L)>40 Then PPOS(L)=PPOS(L)-40 : PM(L)=PM(L)+200
  2061. RD=0
  2062. If PROPOWN(PPOS(L))<>0 and PROPOWN(PPOS(L))<>L
  2063.    RD=1
  2064. End If 
  2065. Return 
  2066.  
  2067. C2:
  2068. Rem get out of jail free 
  2069. GOOJFC=L
  2070. Screen 2
  2071. Ink 5
  2072. Paint 180,(-50+(50*BVD(L)+17)),1
  2073. Ink 14
  2074. Screen 0
  2075. Return 
  2076.  
  2077. C3:
  2078. Rem go back 3 spaces 
  2079. If FCR=2
  2080.    Wait 40
  2081. Else 
  2082.    Wait 4*DEL
  2083. End If 
  2084. For J=PPOS(L)-1 To PPOS(L)-3 Step -1 : K=J
  2085.    If K>21
  2086.       Bob L,BX(K),BY(K),Hrev(PLPC(L))
  2087.       Screen 2
  2088.       Bob L+4,SX(K),SY(K),Hrev(DLPC(L))
  2089.    Else 
  2090.       Bob L,BX(K),BY(K),PLPC(L)
  2091.       Screen 2
  2092.       Bob L+4,SX(K),SY(K),DLPC(L)
  2093.    End If 
  2094.    If FP$="n"
  2095.       Play %100,90,2
  2096.       Play Off 
  2097.    End If 
  2098.    Screen 0
  2099.    Wait DEL
  2100. Next J
  2101. PPOS(L)=PPOS(L)-3
  2102. MOV=1
  2103. Return 
  2104.  
  2105. C4:
  2106. Rem pay each player $50  
  2107. PM(L)=PM(L)-(50*NP)
  2108. For CJ=1 To NP
  2109.    PM(CJ)=PM(CJ)+50
  2110. Next CJ
  2111. UDATEMONEY
  2112. Return 
  2113.  
  2114. C5:
  2115. Rem go to jail 
  2116. Gosub JAIL
  2117. MOV=1
  2118. Return 
  2119.  
  2120. C6:
  2121. Rem go to Go 
  2122. If FCR=2
  2123.    Wait 60
  2124. Else 
  2125.    Wait 6*DEL
  2126. End If 
  2127. ROL=41-PPOS(L)
  2128. Gosub MP
  2129. PPOS(L)=PPOS(L)+ROL : If PPOS(L)>40 Then PPOS(L)=PPOS(L)-40 : PM(L)=PM(L)+200
  2130. MOV=1
  2131. Return 
  2132.  
  2133. C7:
  2134. Rem street repairs 
  2135. HOT=0 : HOU=0
  2136. For SRJ=1 To 40
  2137.    If PROPOWN(SRJ)=L
  2138.       If HOUSE(SRJ)=5
  2139.          Inc HOT
  2140.       Else 
  2141.          HOU=HOU+HOUSE(SRJ)
  2142.       End If 
  2143.    End If 
  2144. Next SRJ
  2145. Screen 2
  2146. Pen 0 : Paper 5
  2147. Screen 0
  2148. LOKATE[23,18]
  2149. CHPRT["You own"+Str$(HOU)+" houses and"+Str$(HOT)+" hotels."]
  2150. LOKATE[23,19]
  2151. SRSUM=(HOU*25)+(HOT*100)
  2152. QQUEST[SRSUM]
  2153. CHPRT["You have to pay "+Pen$(2)+" "+C$+QQ$+Pen$(14)+"."]
  2154. DPEN[14]
  2155. Screen 2
  2156. Pen 14 : Paper 0
  2157. Screen 0
  2158. PM(L)=PM(L)-SRSUM
  2159. UDATEMONEY
  2160. If COMPPLY(L)=1
  2161.    Wait 12*DEL
  2162. End If 
  2163. Return 
  2164.  
  2165. C8:
  2166. Rem advance to St. Charles Place 
  2167. If FCR=2
  2168.    Wait 60
  2169. Else 
  2170.    Wait 6*DEL
  2171. End If 
  2172. If PPOS(L)<12 Then ROL=12-PPOS(L) : Else ROL=52-PPOS(L)
  2173. Gosub MP
  2174. PPOS(L)=PPOS(L)+ROL : If PPOS(L)>40 Then PPOS(L)=PPOS(L)-40 : PM(L)=PM(L)+200
  2175. MOV=1
  2176. Return 
  2177.  
  2178. C9:
  2179. Rem take a ride on the Reading 
  2180. If FCR=2
  2181.    Wait 60
  2182. Else 
  2183.    Wait 6*DEL
  2184. End If 
  2185. ROL=46-PPOS(L)
  2186. Gosub MP
  2187. PPOS(L)=PPOS(L)+ROL : If PPOS(L)>40 Then PPOS(L)=PPOS(L)-40 : PM(L)=PM(L)+200
  2188. MOV=1
  2189. Return 
  2190.  
  2191. C10:
  2192. Rem advance to nearest utility 
  2193. If FCR=2
  2194.    Wait 100
  2195. Else 
  2196.    Wait 10*DEL
  2197. End If 
  2198. If PPOS(L)=8 Then ROL=5
  2199. If PPOS(L)=23 Then ROL=6
  2200. If PPOS(L)=37 Then ROL=16
  2201. Gosub MP
  2202. PPOS(L)=PPOS(L)+ROL : If PPOS(L)>40 Then PPOS(L)=PPOS(L)-40 : PM(L)=PM(L)+200
  2203. MOV=3
  2204. UD=0
  2205. If PROPOWN(PPOS(L))<>0 and PROPOWN(PPOS(L))<>L
  2206.    UD=1
  2207. End If 
  2208. Return 
  2209.  
  2210. C11:
  2211. Rem take walk on Boardwalk 
  2212. If FCR=2
  2213.    Wait 60
  2214. Else 
  2215.    Wait 6*DEL
  2216. End If 
  2217. ROL=40-PPOS(L)
  2218. Gosub MP
  2219. PPOS(L)=PPOS(L)+ROL : If PPOS(L)>40 Then PPOS(L)=PPOS(L)-40 : PM(L)=PM(L)+200
  2220. MOV=1
  2221. Return 
  2222.  
  2223. C12:
  2224. Rem advance to Illinois Ave. 
  2225. If FCR=2
  2226.    Wait 60
  2227. Else 
  2228.    Wait 6*DEL
  2229. End If 
  2230. ROL=25-PPOS(L)
  2231. If PPOS(L)=37 Then ROL=28
  2232. Gosub MP
  2233. PPOS(L)=PPOS(L)+ROL : If PPOS(L)>40 Then PPOS(L)=PPOS(L)-40 : PM(L)=PM(L)+200
  2234. MOV=1
  2235. Return 
  2236.  
  2237. PROJECT:
  2238. Menu Off 
  2239. CLRINFO
  2240. On Choice(2) Gosub LOD,SAV,BLANK,ABOUT,HEP,BLANK,KIL,BLANK,KWIT
  2241. Clear Key 
  2242. Menu On 
  2243. On Menu On 
  2244. Return 
  2245.  
  2246. LOD:
  2247. Break Off 
  2248. Amos Lock 
  2249. Amos To Back 
  2250. RT_FILEREQ["Please select a game to load"]
  2251. F$=Param$
  2252. Amos To Front 
  2253. Amos Unlock 
  2254. Wait Vbl 
  2255. If F$=""
  2256.    Goto DUNLOD
  2257. End If 
  2258. Bob Off 
  2259. Wait Vbl 
  2260. Open In 1,F$
  2261. Input #1,JUNK$
  2262. If JUNK$<>VERSION$
  2263.    Close 1
  2264.    Goto DUNLOD
  2265. End If 
  2266. Input #1,JUNK$ : D1=Asc(JUNK$)
  2267. Input #1,JUNK$ : D2=Asc(JUNK$)
  2268. Input #1,JUNK$ : NP=Asc(JUNK$)
  2269. Input #1,JUNK$ : L=Asc(JUNK$)
  2270. Input #1,JUNK$ : DUBBLE=Asc(JUNK$)
  2271. Input #1,JUNK$ : DEL=Asc(JUNK$)
  2272. RECODE
  2273. PA$=Param$
  2274. RECODE
  2275. LH$=Param$
  2276. RECODE
  2277. SF$=Param$
  2278. RECODE
  2279. PARKING$=Param$
  2280. RECODE
  2281. DL$=Param$
  2282. Input #1,JUNK$ : PARKING=Asc(JUNK$)
  2283. Input #1,JUNK$ : GOOJFC=Asc(JUNK$)
  2284. Input #1,JUNK$ : GOOJFCC=Asc(JUNK$)
  2285. Input #1,JUNK$ : HOUSESLEFT=Asc(JUNK$)
  2286. Input #1,JUNK$ : HOTELSLEFT=Asc(JUNK$)
  2287. Input #1,JUNK$ : C=Asc(JUNK$)
  2288. Input #1,JUNK$ : CC=Asc(JUNK$)
  2289. Input #1,JUNK$ : PMR=Asc(JUNK$)
  2290. RECODE
  2291. PM$=Param$
  2292. Input #1,JUNK$ : PMT=Asc(JUNK$)
  2293. Input #1,JUNK$ : SHUMAN=Asc(JUNK$)
  2294. Input #1,JUNK$ : COUNTRY=Asc(JUNK$)
  2295. Input #1,JUNK$ : QQ=Asc(JUNK$)
  2296. RECODE
  2297. C$=Param$
  2298. RECODE
  2299. QS$=Param$
  2300. Input #1,JUNK$ : H1=Asc(JUNK$)
  2301. RECODE
  2302. FP$=Param$
  2303. RECODE
  2304. BTB$=Param$
  2305. RECODE
  2306. CH$=Param$
  2307. RECODE
  2308. PROP$(41)=Param$
  2309. RECODE
  2310. CP$=Param$
  2311. For X=1 To NP
  2312.    Input #1,JUNK$ : JAILOUT(X)=Asc(JUNK$)
  2313.    Input #1,JUNK$ : COMPPLY(X)=Asc(JUNK$)
  2314.    Input #1,JUNK$ : PLPC(X)=Asc(JUNK$)
  2315.    Input #1,JUNK$ : PC(X)=Asc(JUNK$)
  2316.    Input #1,JUNK$ : PPOS(X)=Asc(JUNK$)
  2317.    RECODE
  2318.    PL$(X)=Param$
  2319.    RECODE
  2320.    JUNK$=Param$
  2321.    PM(X)=Val(JUNK$)
  2322.    Input #1,JUNK$ : PP(X)=Asc(JUNK$)
  2323.    Input #1,JUNK$ : DLPC(X)=Asc(JUNK$)
  2324.    Input #1,BVD(X)
  2325. Next X
  2326. For X=1 To 40
  2327.    RECODE
  2328.    JUNK$=Param$
  2329.    CURRENT(X)=Val(JUNK$)
  2330.    Input #1,JUNK$ : HOUSE(X)=Asc(JUNK$)
  2331.    Input #1,JUNK$ : PROPOWN(X)=Asc(JUNK$)
  2332.    Input #1,JUNK$ : LOAN(X)=Asc(JUNK$)
  2333.    Input #1,JUNK$ : LCT(X)=Asc(JUNK$)
  2334.    Input #1,JUNK$ : LWHO(X)=Asc(JUNK$)
  2335. Next X
  2336. For X=1 To 16
  2337.    Input #1,JUNK$ : CSPEC(X)=Asc(JUNK$)
  2338.    RECODE
  2339.    CHANCE1$(X)=Param$
  2340.    RECODE
  2341.    CHANCE2$(X)=Param$
  2342.    RECODE
  2343.    CHANCE3$(X)=Param$
  2344.    RECODE
  2345.    CHANCE4$(X)=Param$
  2346.    Input #1,CS1(X)
  2347.    Input #1,CX1(X)
  2348.    Input #1,CY1(X)
  2349.    Input #1,CX2(X)
  2350.    Input #1,CY2(X)
  2351.    Input #1,JUNK$ : CCSPEC(X)=Asc(JUNK$)
  2352.    RECODE
  2353.    CCHEST1$(X)=Param$
  2354.    RECODE
  2355.    CCHEST2$(X)=Param$
  2356.    RECODE
  2357.    CCHEST3$(X)=Param$
  2358.    Input #1,CCS1(X)
  2359.    Input #1,CCX1(X)
  2360.    Input #1,CCY1(X)
  2361.    Input #1,CCX2(X)
  2362.    Input #1,CCY2(X)
  2363. Next X
  2364.  
  2365. CH1=1
  2366. On COUNTRY Gosub USA,BRIT,AUS,FR,ITA,GER,SWE,SW,NC
  2367. CH1=0
  2368. If DL$="n"
  2369. End If 
  2370. For X=1 To NP
  2371.    JUNK=PPOS(X)
  2372.    If JUNK>21 and JUNK<41
  2373.       Bob X,BX(JUNK),BY(JUNK),Hrev(PLPC(X))
  2374.       Wait Vbl 
  2375.       Bob X,BX(JUNK),BY(JUNK),Hrev(PLPC(X))
  2376.    Else 
  2377.       Bob X,BX(JUNK),BY(JUNK),PLPC(X)
  2378.       Wait Vbl 
  2379.       Bob X,BX(JUNK),BY(JUNK),PLPC(X)
  2380.    End If 
  2381.    Wait Vbl 
  2382. Next X
  2383. For X=1 To 40
  2384.    Gosub HOUSEBOB
  2385.    Wait Vbl 
  2386.    If RENT(X,3)>0
  2387.       Paste Bob HX,HY,((X-1)/5+45)
  2388.       Wait Vbl 
  2389.    End If 
  2390.    If HOUSE(X)>0
  2391.       Paste Bob HX,HY,SHAP
  2392.       Wait Vbl 
  2393.    End If 
  2394. Next X
  2395. Ink 14 : Bar 181,38 To 562,(42+32)
  2396. Ink 0 : Bar 181,38 To 562,(42+8*(NP))
  2397. UDATENAME
  2398. UDATEMONEY
  2399. UDATEPROP
  2400. Paste Bob 1,1,D1+19
  2401. Paste Bob 20,30,D2+19
  2402. Screen 2
  2403. Paste Bob 472,30,D1+97
  2404. Paste Bob 530,30,D2+103
  2405. Screen 0
  2406. Wait Vbl 
  2407. Close 1
  2408. UDATEBOBS
  2409. Wait Vbl 
  2410. UDATENAME
  2411. UDATESETS
  2412. HIGHLIGHTTURN
  2413. Gosub BLANK
  2414. Wait Vbl 
  2415. UDATEMENUS
  2416. CLRINFO
  2417. DUNLOD:
  2418. JUNK$=""
  2419. Gosub BLANK
  2420. Break On 
  2421. Return 
  2422.  
  2423. SAV:
  2424. Break Off 
  2425. Amos Lock 
  2426. Amos To Back 
  2427. RT_FILEREQ["Please select a game to save"]
  2428. F$=Param$
  2429. Amos To Front 
  2430. Amos Unlock 
  2431.  
  2432. Wait Vbl 
  2433. If F$=""
  2434.    Goto DUNSAV
  2435. End If 
  2436. Open Out 1,F$
  2437. Print #1,VERSION$
  2438. Print #1,Chr$(D1)
  2439. Print #1,Chr$(D2)
  2440. Print #1,Chr$(NP)
  2441. Print #1,Chr$(L)
  2442. Print #1,Chr$(DUBBLE)
  2443. Print #1,Chr$(DEL)
  2444. ENCODE[PA$]
  2445. ENCODE[LH$]
  2446. ENCODE[SF$]
  2447. ENCODE[PARKING$]
  2448. ENCODE[DL$]
  2449. Print #1,Chr$(PARKING)
  2450. Print #1,Chr$(GOOJFC)
  2451. Print #1,Chr$(GOOJFCC)
  2452. Print #1,Chr$(HOUSESLEFT)
  2453. Print #1,Chr$(HOTELSLEFT)
  2454. Print #1,Chr$(C)
  2455. Print #1,Chr$(CC)
  2456. Print #1,Chr$(PMR)
  2457. ENCODE[PM$]
  2458. Print #1,Chr$(PMT)
  2459. Print #1,Chr$(SHUMAN)
  2460. Print #1,Chr$(COUNTRY)
  2461. Print #1,Chr$(QQ)
  2462. ENCODE[C$]
  2463. ENCODE[QS$]
  2464. Print #1,Chr$(H1)
  2465. ENCODE[FP$]
  2466. ENCODE[BTB$]
  2467. ENCODE[CH$]
  2468. ENCODE[PROP$(41)]
  2469. ENCODE[CP$]
  2470. For X=1 To NP
  2471.    Print #1,Chr$(JAILOUT(X))
  2472.    Print #1,Chr$(COMPPLY(X))
  2473.    Print #1,Chr$(PLPC(X))
  2474.    Print #1,Chr$(PC(X))
  2475.    Print #1,Chr$(PPOS(X))
  2476.    ENCODE[PL$(X)]
  2477.    ENCODE[Str$(PM(X))]
  2478.    Print #1,Chr$(PP(X))
  2479.    Print #1,Chr$(DLPC(X))
  2480.    Print #1,BVD(X)
  2481. Next X
  2482. For X=1 To 40
  2483.    ENCODE[Str$(CURRENT(X))]
  2484.    Print #1,Chr$(HOUSE(X))
  2485.    Print #1,Chr$(PROPOWN(X))
  2486.    Print #1,Chr$(LOAN(X))
  2487.    Print #1,Chr$(LCT(X))
  2488.    Print #1,Chr$(LWHO(X))
  2489. Next X
  2490. For X=1 To 16
  2491.    Print #1,Chr$(CSPEC(X))
  2492.    ENCODE[CHANCE1$(X)]
  2493.    ENCODE[CHANCE2$(X)]
  2494.    ENCODE[CHANCE3$(X)]
  2495.    ENCODE[CHANCE4$(X)]
  2496.    Print #1,CS1(X)
  2497.    Print #1,CX1(X)
  2498.    Print #1,CY1(X)
  2499.    Print #1,CX2(X)
  2500.    Print #1,CY2(X)
  2501.    Print #1,Chr$(CCSPEC(X))
  2502.    ENCODE[CCHEST1$(X)]
  2503.    ENCODE[CCHEST2$(X)]
  2504.    ENCODE[CCHEST3$(X)]
  2505.    Print #1,CCS1(X)
  2506.    Print #1,CCX1(X)
  2507.    Print #1,CCY1(X)
  2508.    Print #1,CCX2(X)
  2509.    Print #1,CCY2(X)
  2510. Next X
  2511. UDATEMENUS
  2512. Close 1
  2513. DUNSAV:
  2514. Gosub BLANK
  2515. Break On 
  2516. Return 
  2517.  
  2518. BLANK:
  2519. CLRINFO
  2520. Gosub UPINFO
  2521. Return 
  2522.  
  2523. ABOUT:
  2524. LOKATE[23,12]
  2525. CHPRT["                      "]
  2526. CHPRT[Pen$(14)+Paper$(4)]
  2527. LOKATE[23,12]
  2528. CHPRT[" MONOPOLY "]
  2529.  
  2530. Rem change to " MONOPOLY Deluxe " ?? 
  2531.  
  2532. DPAPER[0] : DPEN[14]
  2533. LOKATE[23,13]
  2534. CHPRT["Version 1.8 Beta2"]
  2535. LOKATE[23,15] : CHPRT[Paper$(0)+"Copyright ï¿½ Parker Bros."]
  2536. LOKATE[23,16] : CHPRT["1935,1936,1947,1951,1952,1954,1961,1973"]
  2537. LOKATE[23,17] : CHPRT["All rights reserved."]
  2538. LOKATE[23,19] : CHPRT["This Amiga version Copyright ï¿½ 1994-2000"]
  2539. LOKATE[23,20] : CHPRT["Al Metz.  All rights reserved"]
  2540. Return 
  2541.  
  2542. HEP:
  2543. If FCR=0
  2544.    FCR=2
  2545.    For J=1 To NP
  2546.       PL$(J)=DD$(BVD(J))
  2547.       PC(J)=14
  2548.    Next J
  2549.    DL$="y"
  2550. Else 
  2551.    FCR=0
  2552.    For J=1 To NP
  2553.       PL$(J)=DC$(BVD(J))
  2554.       PC(J)=DPC(BVD(J))
  2555.    Next J
  2556.    DL$="n"
  2557. End If 
  2558. UDATEMENUS
  2559. Screen To Front FCR
  2560. UDATENAME
  2561. Gosub ZON
  2562. Gosub BLANK
  2563. HIGHLIGHTTURN
  2564. Return 
  2565.  
  2566. KIL:
  2567. LOKATE[23,12] : DPEN[11] : CHPRT["Kill A Player"]
  2568. DPEN[14]
  2569. LOKATE[23,14]
  2570. CHPRT[Pen$(PC(L))+PL$(L)+Pen$(14)]
  2571. LOKATE[23,15]
  2572. CHPRT["Are you sure you want to quit? (y/N) "]
  2573. KILKEY:
  2574. KEYGET
  2575. Bell 
  2576. LOKATE[23,16]
  2577. CHPRT[A$]
  2578. If A$=Chr$(13)
  2579.    A$="y"
  2580. End If 
  2581. A$=Lower$(A$)
  2582. If(A$<>"n") and(A$<>"y")
  2583.    Goto KILKEY
  2584. End If 
  2585. If A$="n"
  2586.    CLRINFO
  2587.    Gosub UPINFO
  2588.    Show On 
  2589.    Return 
  2590. End If 
  2591.  
  2592. KAPUT:
  2593. CLRINFO
  2594. JUNK$=PL$(L)
  2595. PL$(L)=""
  2596. TEMPL1=L
  2597. For X=1 To NP
  2598.    TEMPL2$(X)=PL$(X)
  2599.    TEMPL3(X)=PPOS(X)
  2600. Next X
  2601. X=0
  2602. If PM(L)<0
  2603.    LOKATE[23,13]
  2604.    CHPRT[Pen$(PC(L))+JUNK$+Pen$(14)+" is bankrupt.   "]
  2605. End If 
  2606. PM(L)=0
  2607. UDATEMONEY
  2608. LOKATE[23,15]
  2609. YY=0
  2610. NM=0
  2611. If QS$="y"
  2612.    QSB=QSB+1
  2613. End If 
  2614. If NP>2
  2615.    For X=1 To 40
  2616.       Gosub HOUSEBOB
  2617.       If PROPOWN(X)=L
  2618.          PROPOWN(X)=0
  2619.          UFILL[X,L]
  2620.          If HOUSE(X)>0
  2621.             If HOUSE(X)=H2
  2622.                Inc HOTELSLEFT
  2623.             Else 
  2624.                HOUSESLEFT=HOUSESLEFT+HOUSE(X)
  2625.             End If 
  2626.             HOUSE(X)=0
  2627.             Paste Bob HX,HY,((X-1)/5+45)
  2628.             Screen 2
  2629.             Ink PCOLOR(X)
  2630.             Bar DSX,DSY To DTX,DTY
  2631.             Ink 14
  2632.             Screen 0
  2633.             Wait Vbl 
  2634.          End If 
  2635.          If CURRENT(X)<>0
  2636.             If RENT(X,0)<999
  2637.                CURRENT(X)=RENT(X,0)
  2638.             Else 
  2639.                If X<>6 and X<>13 and X<>16 and X<>26 and X<>29 and X<>36
  2640.                   CURRENT(X)=0
  2641.                End If 
  2642.             End If 
  2643.          End If 
  2644.          Inc NM : M(NM)=X
  2645.          If BTB$="y"
  2646.             If CURRENT(X)=0
  2647.                CURRENT(X)=RENT(X,0)
  2648.             End If 
  2649.          End If 
  2650.       End If 
  2651.    Next X
  2652.    UDATESETS
  2653.    If QSB=2 or BTB$="y"
  2654.       NM=0
  2655.    End If 
  2656.    If NM>0
  2657.       M=L
  2658.       CHPRT[Pen$(PC(L))+JUNK$+Pen$(14)+"'s properties will now be   "]
  2659.       LOKATE[23,16] : CHPRT["auctioned off to the highest bidder."]
  2660.       Wait 10*DEL
  2661.       For X=1 To NM
  2662.          L=M+1
  2663.          If L>NP
  2664.             L=1
  2665.          End If 
  2666.          PPOS(L)=M(X)
  2667.          CLRINFO
  2668.          PRTINFO[PPOS(L)]
  2669.          UDATEMONEY
  2670.          COMEONALONG
  2671.          UDATEMONEY
  2672.          UDATESETS
  2673.       Next X
  2674.       L=TEMPL1
  2675.       For X=1 To NP
  2676.          PL$(X)=TEMPL2$(X)
  2677.          PPOS(X)=TEMPL3(X)
  2678.       Next X : X=0
  2679.    End If 
  2680.    UDATESETS
  2681. Else 
  2682.    PM(L)=0
  2683.    For X=1 To 40
  2684.       If PROPOWN(X)=L
  2685.          PROPOWN(X)=0
  2686.          UFILL[X,L]
  2687.       End If 
  2688.    Next X
  2689.    Goto KAPUT2
  2690. End If 
  2691. DPEN[14]
  2692. CLRINFO
  2693. LOKATE[23,16]
  2694. CHPRT["Now removing "+Pen$(PC(L))+JUNK$+Pen$(14)+" from the game."]
  2695. KAPUT2:
  2696. If GOOJFC=L
  2697.    GOOJFC=0
  2698.    Screen 2
  2699.    Ink 11
  2700.    Paint 180,(-50+(50*BVD(L)+17)),1
  2701.    Ink 14
  2702.    Screen 0
  2703. End If 
  2704. If GOOJFCC=L
  2705.    GOOJFCC=0
  2706.    Screen 2
  2707.    Ink 11
  2708.    Paint 180,(-50+(50*BVD(L)+23)),1
  2709.    Ink 14
  2710.    Screen 0
  2711. End If 
  2712. Dec NP
  2713. For J=1 To NP
  2714.    If PL$(J)=""
  2715.       Swap PL$(J),PL$(J+1)
  2716.       Swap PM(J),PM(J+1)
  2717.       Swap PC(J),PC(J+1)
  2718.       Swap PPOS(J),PPOS(J+1)
  2719.       Swap PLPC(J),PLPC(J+1)
  2720.       Swap DLPC(J),DLPC(J+1)
  2721.       Swap COMPPLY(J),COMPPLY(J+1)
  2722.       Swap JAILOUT(J),JAILOUT(J+1)
  2723.       Swap BVD(J),BVD(J+1)
  2724.       For K=1 To 40
  2725.          If PROPOWN(K)=J
  2726.             PROPOWN(K)=999
  2727.          End If 
  2728.          If PROPOWN(K)=J+1
  2729.             PROPOWN(K)=J
  2730.          End If 
  2731.          If PROPOWN(K)=999
  2732.             PROPOWN(K)=J+1
  2733.          End If 
  2734.       Next K
  2735.       K=0
  2736.    End If 
  2737.    K=PPOS(J)
  2738.    If K>21 and K<41
  2739.       Bob J,BX(K),BY(K),Hrev(PLPC(J))
  2740.       Screen 2
  2741.       Bob J+4,SX(K),SY(K),Hrev(DLPC(J))
  2742.       Screen 0
  2743.       Wait Vbl 
  2744.    Else 
  2745.       Bob J,BX(K),BY(K),PLPC(J)
  2746.       Screen 2
  2747.       Bob J+4,SX(K),SY(K),DLPC(J)
  2748.       Screen 0
  2749.       Wait Vbl 
  2750.    End If 
  2751. Next J
  2752. Wait 6*DEL
  2753. Bob Off(NP+1)
  2754. Bob Off(NP+5)
  2755. Wait Vbl 
  2756. UDATEBOBS
  2757. Wait Vbl 
  2758. Gosub UNHIGHLIGHT
  2759. Ink 0 : Bar 181,38 To 562,(42+8*(NP+1))
  2760. Wait Vbl 
  2761. UDATENAME
  2762. UDATEPROP
  2763. UDATEMONEY
  2764. UDATEMENUS
  2765. For J=63 To 30 Step -1
  2766.    Bell J
  2767.    Wait 2
  2768. Next J
  2769. KILT=1
  2770. UDATESETS
  2771. CLRINFO
  2772. L=TEMPL1
  2773. If COMPPLY(L)=0
  2774.    Show On 
  2775. End If 
  2776. CQUIT:
  2777. JUNK=0
  2778. For J=1 To NP
  2779.    If COMPPLY(J)=1
  2780.       Inc JUNK
  2781.    End If 
  2782. Next J
  2783. If JUNK$=Chr$(27)
  2784.    CLRINFO
  2785.    Show On 
  2786.    DPEN[14]
  2787.    If JUNK=NP and NP>1
  2788.       LOKATE[23,16]
  2789.       CHPRT["Attention!"]
  2790.       LOKATE[23,18]
  2791.       CHPRT["There are no human players left."]
  2792.    End If 
  2793.    LOKATE[23,19]
  2794.    CHPRT["Do you want to end the game now? (Y/n)"]
  2795.    CQ2:
  2796.    Repeat 
  2797.       A$=Inkey$
  2798.    Until A$=""
  2799.    KEYGET
  2800.    If A$=Chr$(27)
  2801.       Goto CQ2
  2802.    End If 
  2803.    If A$=Chr$(13)
  2804.       A$="y"
  2805.    End If 
  2806.    A$=Lower$(A$)
  2807.    LOKATE[23,20]
  2808.    CHPRT[A$]
  2809.    If A$="y"
  2810.       Pop 
  2811.       Goto GAMEEND
  2812.    End If 
  2813.    SHUMAN=0
  2814.    Hide On 
  2815.    Gosub UPINFO
  2816.    Return 
  2817. End If 
  2818. If JUNK=NP and NP>1
  2819.    If SHUMAN>0
  2820.       CLRINFO
  2821.       Show On 
  2822.       DPEN[14]
  2823.       LOKATE[23,16]
  2824.       CHPRT["Attention!"]
  2825.       LOKATE[23,18]
  2826.       CHPRT["There are no human players left."]
  2827.       LOKATE[23,19]
  2828.       CHPRT["Do you want to end the game now? (Y/n)"]
  2829.       KEYGET
  2830.       If A$=Chr$(13)
  2831.          A$="y"
  2832.       End If 
  2833.       A$=Lower$(A$)
  2834.       LOKATE[23,20]
  2835.       CHPRT[A$]
  2836.       If A$="y"
  2837.          Pop 
  2838.          Goto GAMEEND
  2839.       End If 
  2840.       SHUMAN=0
  2841.       Hide On 
  2842.       Gosub UPINFO
  2843.    End If 
  2844. End If 
  2845. JUNK=0
  2846. If QSB=2 or NP=1
  2847.    Pop 
  2848.    Goto GAMEEND
  2849. End If 
  2850. Return 
  2851.  
  2852. KWIT:
  2853. LOKATE[23,12] : DPEN[10] : CHPRT["Quit"]
  2854. DPEN[14]
  2855. LOKATE[23,14]
  2856. CHPRT["Are you sure you want to quit? (y/N) "]
  2857. Clear Key 
  2858. KWITAKEY:
  2859. KEYGET
  2860. If A$=Chr$(13)
  2861.    A$="n"
  2862. End If 
  2863. LOKATE[23,16]
  2864. CHPRT[A$]
  2865. A$=Lower$(A$)
  2866. If A$="y"
  2867.    Goto GAMEEND
  2868. End If 
  2869. CLRINFO
  2870. Gosub UPINFO
  2871. Show On 
  2872. Return 
  2873.  
  2874. PROPERTY:
  2875. Menu Off 
  2876. CLRINFO
  2877. JUNKOK=43 : JUNKCAN=44
  2878. If DL$="y"
  2879.    JUNKOK=41 : JUNKCAN=42
  2880. End If 
  2881. On Choice(2) Gosub BUYHOUSE,SELLHOUSE,BLANK,MORTGAGE,LIFTMORT,BLANK,PRINFO,BLANK,LOAN
  2882. Menu On 
  2883. On Menu On : DPEN[14]
  2884. CLRINFO
  2885. Gosub UPINFO
  2886. LOKATE[23,20] : CHPRT["Hit any key to roll dice."]
  2887. Clear Key 
  2888. Return 
  2889.  
  2890. BUYHOUSE:
  2891. If PM(L)<50
  2892.    DPEN[14]
  2893.    LOKATE[23,15]
  2894.    CHPRT["You don't have enough money"]
  2895.    LOKATE[23,16]
  2896.    CHPRT["to buy ANY houses!"]
  2897.    Wait 6*DEL
  2898.    Return 
  2899. End If 
  2900. For J=1 To 40 : HBACKUP(J)=HOUSE(J) : CURBACK(J)=CURRENT(J) : Next J
  2901. MONEYBACK=PM(L) : HOUSEBACK=HOUSESLEFT : HOTELBACK=HOTELSLEFT
  2902. LOKATE[23,12] : DPEN[8] : CHPRT["Buy House"]
  2903. DPEN[14]
  2904. LOKATE[23,14] : CHPRT["Please click on a property"]
  2905. LOKATE[23,15] : CHPRT["that you want to buy a house for."]
  2906. LOKATE[23,17] : CHPRT["Click 'OK' to quit."]
  2907. LOKATE[23,18] : CHPRT["Click 'CANCEL' if you change your mind."]
  2908. If LH$="y"
  2909.    LOKATE[23,20]
  2910.    CHPRT["Houses left ="+Str$(HOUSESLEFT)+"    Hotels left ="+Str$(HOTELSLEFT)]
  2911. End If 
  2912. HOUSELOOP:
  2913. If COMPPLY(L)=0
  2914.    Gosub CLICK
  2915. Else 
  2916.    Wait 4*DEL
  2917.    If PP(L)=3
  2918.       If(HOUSECOST(X1)+JUNK)>PM(L)
  2919.          X=JUNKOK
  2920.          Goto HL
  2921.       End If 
  2922.    Else 
  2923.       If(HOUSECOST(X1)+200)>PM(L)
  2924.          X=JUNKOK
  2925.          Goto HL
  2926.       End If 
  2927.    End If 
  2928.    If PP(L)=3 and LH$="y"
  2929.       If HOUSE(X1)=H1 and HOUSE(X2)=H1 and HOUSE(X3)=H1
  2930.          X=JUNKOK
  2931.          Goto HL
  2932.       End If 
  2933.    Else 
  2934.       If HOUSE(X1)=H2 and HOUSE(X2)=H2 and HOUSE(X3)=H2
  2935.          X=JUNKOK
  2936.          Goto HL
  2937.       End If 
  2938.    End If 
  2939.    If LH$="y"
  2940.       If HOTELSLEFT=0 and HOUSE(X1)>H1-1 and HOUSE(X2)>H1-1 and HOUSE(X3)>H1-1
  2941.          X=JUNKOK
  2942.       End If 
  2943.       If HOUSESLEFT=0 and(HOUSE(X1)<H1 or HOUSE(X2)<H1 or HOUSE(X3)<H1)
  2944.          X=JUNKOK
  2945.       End If 
  2946.    End If 
  2947.    X=X1
  2948.    If HOUSE(X1)>HOUSE(X2)
  2949.       X=X2
  2950.    End If 
  2951.    If HOUSE(X2)>HOUSE(X3)
  2952.       X=X3
  2953.    End If 
  2954.    CLRINFO
  2955. End If 
  2956. HL:
  2957. If X=JUNKCAN
  2958.    Gosub HBACK
  2959.    Return 
  2960. End If 
  2961. If X=JUNKOK
  2962.    CLRINFO
  2963.    UDATEMONEY
  2964.    UDATEBOBS
  2965.    Bell 80
  2966.    If COMPPLY(L)=1
  2967.       Wait 6*DEL
  2968.    End If 
  2969.    Return 
  2970. End If 
  2971. LOKATE[23,12]
  2972. DPEN[PCOLOR(X)]
  2973. CHPRT[PROP$(X)]
  2974. LOKATE[23,14]
  2975. DPEN[14]
  2976. If RENT(X,2)>0
  2977.    QQUEST[HOUSECOST(X)]
  2978.    CHPRT["Houses cost "+Pen$(2)+" "+C$+QQ$]
  2979.    DPEN[14]
  2980. End If 
  2981. If RENT(X,0)>999
  2982.    LOKATE[23,16]
  2983.    CHPRT["You can't put houses on that property."]
  2984.    Goto HOUSELOOP
  2985. End If 
  2986. If PROPOWN(X)<>L
  2987.    DPEN[14]
  2988.    LOKATE[23,16]
  2989.    CHPRT["You don't own that."]
  2990.    Goto HOUSELOOP
  2991. End If 
  2992. If HOUSECOST(X)>PM(L)
  2993.    LOKATE[23,16]
  2994.    CHPRT["You don't have enough money."]
  2995.    Goto HOUSELOOP
  2996. End If 
  2997. If CURRENT(X)=RENT(X,0)
  2998.    LOKATE[23,16]
  2999.    CHPRT["You don't have all the properties"]
  3000.    LOKATE[23,17]
  3001.    CHPRT["of that color group."]
  3002.    Goto HOUSELOOP
  3003. End If 
  3004. If CURRENT(X)=0 or CURRENT(SET1(X))=0 or CURRENT(SET2(X))=0
  3005.    LOKATE[23,16]
  3006.    CHPRT["You can't build houses or hotels when"]
  3007.    LOKATE[23,17]
  3008.    CHPRT["one or more properties of that"]
  3009.    LOKATE[23,18]
  3010.    CHPRT["color group have been mortgaged."]
  3011.    Goto HOUSELOOP
  3012. End If 
  3013. If LH$="y"
  3014.    If HOUSE(X)<H1 and HOUSESLEFT=0
  3015.       LOKATE[23,16]
  3016.       CHPRT["Sorry, there are no houses left."]
  3017.       Goto HOUSELOOP
  3018.    End If 
  3019.    If HOUSE(X)=H1 and HOTELSLEFT=0
  3020.       LOKATE[23,16]
  3021.       CHPRT["Sorry, there are no hotels left."]
  3022.       Goto HOUSELOOP
  3023.    End If 
  3024. End If 
  3025. If HOUSE(X)>H1
  3026.    LOKATE[23,16]
  3027.    CHPRT["You already have a hotel there."]
  3028.    Goto HOUSELOOP
  3029. End If 
  3030. If HOUSE(SET1(X))<HOUSE(X) or HOUSE(SET2(X))<HOUSE(X)
  3031.    LOKATE[23,16]
  3032.    CHPRT["You must distribute the houses evenly."]
  3033.    Goto HOUSELOOP
  3034. End If 
  3035. Rem buy a house
  3036. Inc HOUSE(X)
  3037. If QS$="y" and HOUSE(X)=4
  3038.    HOUSE(X)=5
  3039. End If 
  3040. CURRENT(X)=RENT(X,HOUSE(X))
  3041. PM(L)=PM(L)-HOUSECOST(X)
  3042. Gosub HOUSEBOB
  3043. If LH$="y"
  3044.    If HOUSE(X)=H2
  3045.       Dec HOTELSLEFT
  3046.       HOUSESLEFT=HOUSESLEFT+H1
  3047.    Else 
  3048.       Dec HOUSESLEFT
  3049.    End If 
  3050.    LOKATE[23,20]
  3051.    CHPRT["Houses left ="+Str$(HOUSESLEFT)+"    Hotels left ="+Str$(HOTELSLEFT)]
  3052. End If 
  3053. Paste Bob HX,HY,((X-1)/5+45)
  3054. Wait Vbl 
  3055. Paste Bob HX,HY,SHAP
  3056. Wait Vbl 
  3057. Screen 2
  3058. Ink PCOLOR(X)
  3059. Bar DSX,DSY To DTX,DTY
  3060. Paste Bob DSX,DSY,DSHAP
  3061. Ink 14
  3062. Screen 0
  3063. Wait Vbl 
  3064. UDATEMONEY
  3065. Bell 
  3066. Wait Vbl 
  3067. If COMPPLY(L)=1
  3068.    Wait 6*DEL
  3069. End If 
  3070. Goto HOUSELOOP
  3071. Return 
  3072.  
  3073. SELLHOUSE:
  3074. JUNK=0
  3075. LOKATE[23,12] : DPEN[2] : CHPRT["Sell House"]
  3076. DPEN[14]
  3077. For J=1 To 40 : HBACKUP(J)=HOUSE(J) : CURBACK(J)=CURRENT(J) : Next J
  3078. MONEYBACK=PM(L) : HOUSEBACK=HOUSESLEFT : HOTELBACK=HOTELSLEFT
  3079. LOKATE[23,14] : CHPRT["Please click on a property"]
  3080. LOKATE[23,15] : CHPRT["that you want to sell a house from."]
  3081. LOKATE[23,17] : CHPRT["Click 'OK' to quit."]
  3082. LOKATE[23,18] : CHPRT["Click 'CANCEL' if you change your mind."]
  3083. If LH$="y"
  3084.    LOKATE[23,20]
  3085.    CHPRT["Houses left ="+Str$(HOUSESLEFT)+"    Hotels left ="+Str$(HOTELSLEFT)]
  3086. End If 
  3087. HOUSELOOP2:
  3088. If COMPPLY(L)=0
  3089.    Gosub CLICK
  3090. Else 
  3091.    Wait 4*DEL
  3092.    If PM(L)=>0
  3093.       X=JUNKOK
  3094.    Else 
  3095.       Inc JUNK
  3096.       If JUNK>NM
  3097.          X=JUNKOK
  3098.       Else 
  3099.          X=M(JUNK)
  3100.       End If 
  3101.    End If 
  3102.    CLRINFO
  3103. End If 
  3104. HL2:
  3105. If X=JUNKCAN
  3106.    Gosub HBACK
  3107.    Return 
  3108. End If 
  3109. If X=JUNKOK
  3110.    CLRINFO
  3111.    UDATEMONEY
  3112.    For X=1 To 40
  3113.       Gosub HOUSEBOB
  3114.       If RENT(X,2)<>RENT(X,3)
  3115.          If HOUSE(X)=0
  3116.             Paste Bob HX,HY,((X-1)/5+45)
  3117.             Wait Vbl 
  3118.          End If 
  3119.       End If 
  3120.    Next X
  3121.    UDATEBOBS
  3122.    Bell 80
  3123.    If COMPPLY(L)=1
  3124.       Wait 6*DEL
  3125.    End If 
  3126.    Return 
  3127. End If 
  3128. CLRINFO
  3129. LOKATE[23,12]
  3130. DPEN[PCOLOR(X)]
  3131. CHPRT[PROP$(X)]
  3132. LOKATE[23,14]
  3133. DPEN[14]
  3134. If RENT(X,2)>0
  3135.    QQUEST[HOUSECOST(X)]
  3136.    CHPRT["Houses cost "+Pen$(2)+" "+C$+QQ$]
  3137.    DPEN[14]
  3138. End If 
  3139. DPEN[14]
  3140. If PROPOWN(X)<>L
  3141.    LOKATE[23,16]
  3142.    CHPRT["You don't own that."]
  3143.    Goto HOUSELOOP2
  3144. End If 
  3145. If HOUSE(X)=0
  3146.    LOKATE[23,16]
  3147.    CHPRT["You don't have any houses there."]
  3148.    Goto HOUSELOOP2
  3149. End If 
  3150. If HOUSE(SET1(X))>HOUSE(X) or HOUSE(SET2(X))>HOUSE(X)
  3151.    LOKATE[23,16]
  3152.    CHPRT["You must remove the houses evenly."]
  3153.    Goto HOUSELOOP2
  3154. End If 
  3155. Rem sell a house 
  3156. Dec HOUSE(X)
  3157. If QS$="y" and HOUSE(X)=4
  3158.    HOUSE(X)=3
  3159. End If 
  3160. CURRENT(X)=RENT(X,HOUSE(X))
  3161. If HOUSE(X)=0 and PROPOWN(SET1(X))=L and PROPOWN(SET2(X))=L
  3162.    CURRENT(X)=RENT(X,0)*2
  3163. End If 
  3164. PM(L)=PM(L)+(HOUSECOST(X)/2)
  3165. Gosub HOUSEBOB
  3166. If LH$="y"
  3167.    If HOUSE(X)=H1
  3168.       Inc HOTELSLEFT
  3169.       HOUSESLEFT=HOUSESLEFT-H1
  3170.    Else 
  3171.       Inc HOUSESLEFT
  3172.    End If 
  3173.    LOKATE[23,20]
  3174.    CHPRT["Houses left ="+Str$(HOUSESLEFT)+"    Hotels left ="+Str$(HOTELSLEFT)]
  3175. End If 
  3176. Wait Vbl 
  3177. Paste Bob HX,HY,((X-1)/5+45)
  3178. Wait Vbl 
  3179. If HOUSE(X)<>0
  3180.    Paste Bob HX,HY,SHAP
  3181.    Wait Vbl 
  3182. End If 
  3183. Wait Vbl 
  3184. Screen 2
  3185. Ink PCOLOR(X)
  3186. Bar DSX,DSY To DTX,DTY
  3187. If HOUSE(X)<>0
  3188.    Paste Bob DSX,DSY,DSHAP
  3189. End If 
  3190. Ink 14
  3191. Screen 0
  3192. UDATEMONEY
  3193. Bell 
  3194. UDATEBOBS
  3195. If COMPPLY(L)=1
  3196.    Wait 6*DEL
  3197. End If 
  3198. Goto HOUSELOOP2
  3199. Return 
  3200.  
  3201. MORTGAGE:
  3202. JUNK=0 : JUNK2=0
  3203. CLRINFO
  3204. LOKATE[23,12] : DPEN[4] : CHPRT["Mortgage"]
  3205. DPEN[14]
  3206. For J=1 To 40 : CURBACK(J)=CURRENT(J) : Next J
  3207. MONEYBACK=PM(L)
  3208. LOKATE[23,14] : CHPRT["Please click on a property"]
  3209. LOKATE[23,15] : CHPRT["that you want to mortgage."]
  3210. LOKATE[23,17] : CHPRT["Click 'OK' to quit."]
  3211. LOKATE[23,18] : CHPRT["Click 'CANCEL' if you change your mind."]
  3212. MORTLOOP:
  3213. If COMPPLY(L)=0
  3214.    Gosub CLICK
  3215. Else 
  3216.    Wait 4*DEL
  3217.    Inc JUNK
  3218.    If JUNK>NM
  3219.       X=JUNKOK
  3220.       Goto ML
  3221.    End If 
  3222.    If PM(L)>0
  3223.       X=JUNKOK
  3224.       Goto ML
  3225.    End If 
  3226.    X=M(JUNK)
  3227. End If 
  3228. Wait Vbl 
  3229. CLRINFO
  3230. Wait Vbl 
  3231. ML:
  3232. If X=JUNKCAN
  3233.    CLRINFO
  3234.    For J=1 To 40
  3235.       CURRENT(J)=CURBACK(J)
  3236.    Next J
  3237.    PM(L)=MONEYBACK
  3238.    UDATEMONEY
  3239.    UDATEBOBS
  3240.    Bell 1
  3241.    Return 
  3242. End If 
  3243. If X=JUNKOK
  3244.    CLRINFO
  3245.    UDATEMONEY
  3246.    Bell 80
  3247.    If COMPPLY(L)=1
  3248.       Wait 6*DEL
  3249.    End If 
  3250.    Return 
  3251. End If 
  3252. LOKATE[23,12]
  3253. DPEN[PCOLOR(X)]
  3254. CHPRT[PROP$(X)]
  3255. LOKATE[23,14]
  3256. DPEN[14]
  3257. If PRICE(X)>0
  3258.    JUNK2=PRICE(X)/2
  3259.    QQUEST[JUNK2]
  3260.    JUNK2=0
  3261.    CHPRT["Mortgage value"+Pen$(2)+" "+C$+QQ$]
  3262.    DPEN[14]
  3263. End If 
  3264. DPEN[14]
  3265. If PROPOWN(X)<>L
  3266.    LOKATE[23,16]
  3267.    CHPRT["You don't own that."]
  3268.    Goto MORTLOOP
  3269. End If 
  3270. If HOUSE(X)>0 or HOUSE(SET1(X))>0 or HOUSE(SET2(X))>0
  3271.    LOKATE[23,16]
  3272.    CHPRT["You can't mortgage a property"]
  3273.    LOKATE[23,17]
  3274.    CHPRT["with houses on it's color group."]
  3275.    Goto MORTLOOP
  3276. End If 
  3277. If LOAN(X)>0
  3278.    LOKATE[23,16]
  3279.    CHPRT["You can't mortgage a property"]
  3280.    LOKATE[23,17]
  3281.    CHPRT["once a loan has been made on it."]
  3282.    Goto MORTLOOP
  3283. End If 
  3284. If CURRENT(X)=0
  3285.    LOKATE[23,16]
  3286.    CHPRT["That property is already mortgaged."]
  3287.    Goto MORTLOOP
  3288. End If 
  3289. CURRENT(X)=0
  3290. PM(L)=PM(L)+(PRICE(X)/2)
  3291. LOKATE[23,19]
  3292. JUNK2=PRICE(X)/2
  3293. QQUEST[JUNK2]
  3294. JUNK2=0
  3295. CHPRT["You get "+Pen$(2)+C$+QQ$]
  3296. DPEN[14]
  3297. LOKATE[23,20]
  3298. CHPRT["from the mortgage."]
  3299. UDATEMONEY
  3300. Bell 
  3301. If COMPPLY(L)=1
  3302.    Wait 6*DEL
  3303. End If 
  3304. Goto MORTLOOP
  3305. JUNK=0 : JUNK2=0
  3306. Return 
  3307.  
  3308. LIFTMORT:
  3309. CLRINFO
  3310. JUNK=0
  3311. LOKATE[23,12] : DPEN[3] : CHPRT["Lift Mortgage"]
  3312. DPEN[14]
  3313. For J=1 To 40 : CURBACK(J)=CURRENT(J) : Next J
  3314. MONEYBACK=PM(L)
  3315. LOKATE[23,13] : CHPRT["Please click on a property that you"]
  3316. LOKATE[23,14] : CHPRT["want to lift the mortgage of."]
  3317. LOKATE[23,16] : CHPRT["Click 'OK' to quit."]
  3318. LOKATE[23,17] : CHPRT["Click 'CANCEL' if you change your mind."]
  3319. LOKATE[23,19] : CHPRT["NOTE: Lifting a mortgage costs the value"]
  3320. LOKATE[23,20] : CHPRT["of the mortgage PLUS 10%."]
  3321. LIFTLOOP:
  3322. If COMPPLY(L)=0
  3323.    Gosub CLICK
  3324. Else 
  3325.    Wait 4*DEL
  3326.    Inc JUNK
  3327.    If JUNK>NM
  3328.       X=JUNKOK
  3329.       Goto LL
  3330.    End If 
  3331.    TENPER=PRICE(M(JUNK))
  3332.    TENPER=(TENPER/2)
  3333.    TENPER=TENPER+(PRICE(M(JUNK))/10)
  3334.    If PM(L)<TENPER+100
  3335.       X=JUNKOK
  3336.       Goto LL
  3337.    End If 
  3338.    X=M(JUNK)
  3339. End If 
  3340. Wait Vbl 
  3341. CLRINFO
  3342. Wait Vbl 
  3343. LL:
  3344. If X=JUNKCAN
  3345.    For J=1 To 40
  3346.       CURRENT(J)=CURBACK(J)
  3347.    Next J
  3348.    PM(L)=MONEYBACK
  3349.    UDATEMONEY
  3350.    UDATEBOBS
  3351.    Bell 1
  3352.    Return 
  3353. End If 
  3354. If X=JUNKOK
  3355.    UDATEMONEY
  3356.    Bell 80
  3357.    If COMPPLY(L)=1
  3358.       Wait 6*DEL
  3359.    End If 
  3360.    Return 
  3361. End If 
  3362. LOKATE[23,12]
  3363. DPEN[PCOLOR(X)]
  3364. CHPRT[PROP$(X)]
  3365. LOKATE[23,14]
  3366. DPEN[14]
  3367. If CURRENT(X)>0
  3368.    LOKATE[23,16]
  3369.    CHPRT["That property isn't mortgaged."]
  3370.    Goto LIFTLOOP
  3371. End If 
  3372. LIFT=(PRICE(X)/2) : LIFT=LIFT+(PRICE(X)/10)
  3373. If PRICE(X)>0
  3374.    QQUEST[LIFT]
  3375.    CHPRT["Cost to remove mortgage"+Pen$(2)+" "+C$+QQ$]
  3376.    DPEN[14]
  3377. End If 
  3378. If PM(L)<LIFT
  3379.    LOKATE[23,16]
  3380.    CHPRT["You don't have enough money."]
  3381.    Goto LIFTLOOP
  3382. End If 
  3383. If PROPOWN(X)<>L
  3384.    DPEN[14]
  3385.    LOKATE[23,16]
  3386.    CHPRT["You don't own that."]
  3387.    Goto LIFTLOOP
  3388. End If 
  3389. CURRENT(X)=RENT(X,0)
  3390. UDATESETS
  3391. PM(L)=PM(L)-LIFT
  3392. LOKATE[23,19]
  3393. CHPRT["You pay "+Pen$(2)+C$+QQ$]
  3394. DPEN[14]
  3395. LOKATE[23,20]
  3396. CHPRT["to lift the mortgage."]
  3397. UDATEMONEY
  3398. Bell 
  3399. If COMPPLY(L)=1
  3400.    Wait 6*DEL
  3401. End If 
  3402. Goto LIFTLOOP
  3403. Return 
  3404.  
  3405. PRINFO:
  3406. LOKATE[23,12] : DPEN[4] : CHPRT["Property Deed"]
  3407. DPEN[14]
  3408. LOKATE[23,14]
  3409. CHPRT["Please click on the property"]
  3410. LOKATE[23,15]
  3411. CHPRT["you want information on."]
  3412. LOKATE[23,17]
  3413. CHPRT["Click on 'OK' or 'CANCEL' to exit."]
  3414. Gosub INFO
  3415. Return 
  3416.  
  3417. LOAN:
  3418. JUNK=0
  3419. CLRINFO
  3420. For J=1 To 40
  3421.    CURBACK(J)=LOAN(J)
  3422. Next J
  3423. MONEYBACK=PM(L)
  3424. LOKATE[23,13] : CHPRT["Please click on a property set that "]
  3425. LOKATE[23,14] : CHPRT["you want a loan on."]
  3426. LOKATE[23,16] : CHPRT["Click 'OK' when done."]
  3427. LOKATE[23,17] : CHPRT["Click 'CANCEL' if you change your mind."]
  3428. LOANLOOP:
  3429. If COMPPLY(L)=0
  3430.    Gosub CLICK
  3431. Else 
  3432.    Wait 4*DEL
  3433.    Inc JUNK
  3434.    If JUNK>NM
  3435.       X=JUNKOK : JUNK=0
  3436.       Goto LL2
  3437.    End If 
  3438.    If PM(L)>0
  3439.       X=JUNKOK : JUNK=0
  3440.       Goto LL2
  3441.    End If 
  3442.    X=M(JUNK)
  3443. End If 
  3444. LL2:
  3445. CLRINFO
  3446. Wait Vbl 
  3447. If X=JUNKCAN
  3448.    For J=1 To 40
  3449.       LOAN(J)=CURBACK(J)
  3450.    Next J
  3451.    PM(L)=MONEYBACK
  3452.    UDATEMONEY
  3453.    UDATEBOBS
  3454.    Bell 1
  3455.    Return 
  3456. End If 
  3457. If X=JUNKOK
  3458.    UDATEMONEY
  3459.    UDATEBOBS
  3460.    Bell 80
  3461.    If COMPPLY(L)=1
  3462.       Wait 6*DEL
  3463.    End If 
  3464.    Return 
  3465. End If 
  3466. If PROPOWN(X)<>L
  3467.    LOKATE[23,13] : CHPRT["You don't own that property."]
  3468.    Goto LOANLOOP
  3469. End If 
  3470. If RENT(X,0)=1002
  3471.    RR=1*-(PROPOWN(6)=L)+1*-(PROPOWN(16)=L)+1*-(PROPOWN(26)=L)+1*-(PROPOWN(36)=L)
  3472.    If RR<4
  3473.       LOKATE[23,13]
  3474.       If COUNTRY<>2 and COUNTRY<>3 and COUNTRY<>8 and COUNTRY<>9
  3475.          CHPRT["You don't own all the Railroads."]
  3476.       Else 
  3477.          If COUNTRY=2 or COUNTRY=3
  3478.             CHPRT["You don't own all the Railways."]
  3479.          End If 
  3480.          If COUNTRY=8
  3481.             CHPRT["You don't own all the Fighters."]
  3482.          End If 
  3483.          If COUNTRY=9
  3484.             CHPRT["You don't own all the Speedways."]
  3485.          End If 
  3486.       End If 
  3487.       Goto LOANLOOP
  3488.    End If 
  3489. Else 
  3490.    If PROPOWN(SET1(X))<>L
  3491.       LOKATE[23,13] : CHPRT["You don't own all the properties"]
  3492.       LOKATE[23,14] : CHPRT["of that color group."]
  3493.       Goto LOANLOOP
  3494.    End If 
  3495.    If PROPOWN(SET2(X))<>L
  3496.       LOKATE[23,13] : CHPRT["You don't own all the properties"]
  3497.       LOKATE[23,14] : CHPRT["of that color group."]
  3498.       Goto LOANLOOP
  3499.    End If 
  3500. End If 
  3501. If CURRENT(X)=0 or CURRENT(SET1(X))=0 or CURRENT(SET2(X))=0
  3502.    LOKATE[23,13] : CHPRT["You cannot take a loan out"]
  3503.    LOKATE[23,14] : CHPRT["when one of the properties"]
  3504.    LOKATE[23,15] : CHPRT["is mortgaged."]
  3505.    Goto LOANLOOP
  3506. End If 
  3507. If LOAN(X)<>0
  3508.    LOKATE[23,13] : CHPRT["There has already been a loan"]
  3509.    LOKATE[23,14] : CHPRT["made on those properties."]
  3510.    Goto LOANLOOP
  3511. End If 
  3512. If RENT(X,0)=1002
  3513.    LOAN(6)=L : LOAN(16)=L : LOAN(26)=L : LOAN(36)=L
  3514.    QQUEST[800]
  3515.    LOKATE[23,13] : CHPRT["You get "+Pen$(2)+C$+QQ$]
  3516.    DPEN[14]
  3517.    LOKATE[23,14] : CHPRT["from your loan."]
  3518.    LOKATE[23,16] : CHPRT["You must pay "+Pen$(2)+C$+QQ$]
  3519.    DPEN[14]
  3520.    LOKATE[23,17] : CHPRT["when the loan is called."]
  3521.    PM(L)=PM(L)+800
  3522. Else 
  3523.    LOAN(X)=L : LOAN(SET1(X))=L : LOAN(SET2(X))=L
  3524.    JUNK2=(LCST(X)/10)+LCST(X)
  3525.    QQUEST[LCST(X)]
  3526.    LOKATE[23,13] : CHPRT["You get "+Pen$(2)+C$+QQ$]
  3527.    DPEN[14]
  3528.    LOKATE[23,14] : CHPRT["from your loan."]
  3529.    QQUEST[JUNK2]
  3530.    LOKATE[23,16] : CHPRT["You must pay "+Pen$(2)+C$+QQ$]
  3531.    DPEN[14]
  3532.    LOKATE[23,17] : CHPRT["when the loan is called."]
  3533.    PM(L)=PM(L)+LCST(X)
  3534. End If 
  3535. Wait 4*DEL
  3536. LCT(X)=-(Rnd(5)+7)
  3537. LWHO(X)=L
  3538. Wait Vbl 
  3539. Bell 
  3540. Wait Vbl 
  3541. UDATEMONEY
  3542. UDATEBOBS
  3543. Wait Vbl 
  3544. If COMPPLY(L)=1
  3545.    Wait 6*DEL
  3546. End If 
  3547. Goto LOANLOOP
  3548. JUNK=0
  3549. Return 
  3550.  
  3551. BUY:
  3552. Menu Off 
  3553. SEC=Choice(2)
  3554. CLRINFO
  3555. DPEN[14]
  3556. LOKATE[23,13] : CHPRT["Please click on a property that you"]
  3557. LOKATE[23,14] : CHPRT["want to buy."]
  3558. LOKATE[23,16] : CHPRT["Click 'OK' or 'CANCEL'"]
  3559. LOKATE[23,17] : CHPRT["if you change your mind."]
  3560. BUYTOLOOP:
  3561. Gosub CLICK
  3562. If X=JUNKCAN or X=JUNKOK
  3563.    Bell 1
  3564.    Goto BUYEND
  3565. End If 
  3566. LOKATE[23,12]
  3567. CLRINFO
  3568. PRTINFO[X]
  3569. LOKATE[23,15]
  3570. DPEN[14]
  3571. SELL1=X
  3572. If PROPOWN(SELL1)<>SEC
  3573.    LOKATE[23,18]
  3574.    CHPRT["Sorry, "+Pen$(PC(SEC))+PL$(SEC)+Pen$(14)+" doesn't own that."]
  3575.    DPEN[14]
  3576.    Goto BUYTOLOOP
  3577. End If 
  3578. If HOUSE(SELL1)<>0
  3579.    LOKATE[23,15]
  3580.    CHPRT["You can't buy developed properties."]
  3581.    DPEN[14]
  3582.    Goto BUYTOLOOP
  3583. End If 
  3584. DPEN[14]
  3585. BUY2:
  3586. LOKATE[23,16]
  3587. CHPRT["What are you willing to pay? "]
  3588. Clear Key 
  3589. BD$="" : B$="" : A$=""
  3590. BUYKEY:
  3591. NUMGET
  3592. B$=A$
  3593. If B$<>Chr$(13)
  3594.    If B$=Chr$(8)
  3595.       BD$=""
  3596.       CLRINFO
  3597.       Goto BUY2
  3598.    End If 
  3599.    LOKATE[23,17]
  3600.    BD$=BD$+B$
  3601.    CHPRT[BD$]
  3602.    Goto BUYKEY
  3603. End If 
  3604. BUYPRICE=Val(BD$)
  3605. If((BUYPRICE/QQ)*QQ)<>BUYPRICE
  3606.    CLRINFO
  3607.    LOKATE[23,13]
  3608.    CHPRT["You must use increments of "+Str$(QQ)]
  3609.    Wait 10*DEL
  3610.    CLRINFO
  3611.    Goto BUY2
  3612. End If 
  3613. BUYPRICE=BUYPRICE/QQ
  3614. If BUYPRICE<0
  3615.    Boom 
  3616.    CLRINFO
  3617.    Goto BUYEND
  3618. End If 
  3619. If PM(L)<BUYPRICE
  3620.    CLRINFO
  3621.    LOKATE[23,13]
  3622.    CHPRT["You don't have that much money!"]
  3623.    Wait 10*DEL
  3624.    CLRINFO
  3625.    Goto BUY2
  3626. End If 
  3627. BUY3:
  3628. LOKATE[23,18]
  3629. CHPRT[Pen$(PC(SEC))+PL$(SEC)+Pen$(14)+", do you agree? (Y/n)    "]
  3630. Clear Key 
  3631. If COMPPLY(SEC)=1
  3632.    Gosub COMPBUY
  3633. End If 
  3634. KEYGET
  3635. LOKATE[23,19]
  3636. CHPRT[A$]
  3637. If A$=Chr$(13)
  3638.    A$="y"
  3639. End If 
  3640. A$=Lower$(A$)
  3641. If A$<>"n" and A$<>"y"
  3642.    Goto BUY3
  3643. End If 
  3644. If A$="n"
  3645.    Boom 
  3646.    Goto BUYEND
  3647. End If 
  3648. PROPOWN(SELL1)=L
  3649. UFILL[SELL1,SEC]
  3650. DFILL[SELL1,L]
  3651. PM(L)=PM(L)-BUYPRICE
  3652. PM(SEC)=PM(SEC)+BUYPRICE
  3653. UDATESETS
  3654. Bell 80
  3655. UDATEMONEY
  3656. If CURRENT(SELL1)=0
  3657.    SEC=L
  3658.    SOLDMORT
  3659. End If 
  3660. BUYEND:
  3661. If COMPPLY(SEC)=1
  3662.    Wait 6*DEL
  3663. End If 
  3664. UDATEMONEY
  3665. Wait 4*DEL
  3666. CLRINFO
  3667. Gosub UPINFO
  3668. UDATESETS
  3669. Clear Key 
  3670. If COMPPLY(L)=0
  3671.    Show On 
  3672. End If 
  3673. Menu On 
  3674. On Menu On 
  3675. Return 
  3676.  
  3677. SELL:
  3678. Menu Off 
  3679. CLRINFO
  3680. SEC=Choice(2)
  3681. If SEC=NP+1
  3682.    Gosub BLANK
  3683.    Menu On 
  3684.    On Menu On 
  3685.    Return 
  3686. End If 
  3687. If SEC>NP
  3688.    If SEC=NP+3
  3689.       If GOOJFCC<>L
  3690.          LOKATE[23,14]
  3691.          CHPRT["Sorry, you don't own the"]
  3692.          LOKATE[23,15]
  3693.          DPEN[9]
  3694.          CHPRT["GET OUT OF JAIL FREE - C.Chest"+Pen$(14)+" card."]
  3695.          DPEN[14]
  3696.       Else 
  3697.          If SF$="y"
  3698.             LOKATE[23,14]
  3699.             CHPRT["You sell the "]
  3700.             LOKATE[23,15]
  3701.             DPEN[9]
  3702.             CHPRT["GET OUT OF JAIL FREE - C.Chest"+Pen$(14)+" card."]
  3703.             DPEN[14]
  3704.             LOKATE[23,16]
  3705.             QQUEST[25]
  3706.             CHPRT["for "+Pen$(2)+C$+QQ$+"."]
  3707.             GOOJFCC=0
  3708.             Screen 2
  3709.             Ink 11
  3710.             Paint 180,(-50+(50*BVD(L)+23)),1
  3711.             Ink 14
  3712.             Screen 0
  3713.             PM(L)=PM(L)+25
  3714.             DPEN[14]
  3715.             UDATEMONEY
  3716.          Else 
  3717.             CCSELL:
  3718.             LOKATE[23,13]
  3719.             DPEN[14]
  3720.             CHPRT["Which player wants to buy the"]
  3721.             DPEN[9]
  3722.             LOKATE[23,14]
  3723.             CHPRT["GET OUT OF JAIL FREE - C.Chest"+Pen$(14)+" card?"]
  3724.             LOKATE[23,15]
  3725.             JUNK$="("
  3726.             For SELFJ=1 To NP-1
  3727.                JUNK$=JUNK$+Str$(SELFJ)+","
  3728.             Next SELFJ
  3729.             JUNK$=JUNK$+" or"+Str$(NP)+") ?"
  3730.             CHPRT[JUNK$]
  3731.             Clear Key 
  3732.             KEYGET
  3733.             LOKATE[23,16]
  3734.             CHPRT[A$]
  3735.             SELLCC=Val(A$)
  3736.             If SELLCC<1 or SELLCC>NP
  3737.                Goto CCSELL
  3738.             End If 
  3739.             CCSELL2:
  3740.             LOKATE[23,17]
  3741.             CHPRT["What is the agreed selling price?"]
  3742.             Clear Key 
  3743.             BD$=""
  3744.             CCSELLKEY:
  3745.             NUMGET
  3746.             B$=A$
  3747.             If B$<>Chr$(13)
  3748.                If B$=Chr$(8)
  3749.                   BD$=""
  3750.                   CLRINFO
  3751.                   Goto CCSELL2
  3752.                End If 
  3753.                BD$=BD$+B$
  3754.                LOKATE[23,18]
  3755.                CHPRT[BD$]
  3756.                Goto CCSELLKEY
  3757.             End If 
  3758.             SELLCC2=Val(BD$)
  3759.             If((SELLCC2/QQ)*QQ)<>SELLCC2
  3760.                CLRINFO
  3761.                LOKATE[23,13]
  3762.                CHPRT["You must use increments of "+Str$(QQ)]
  3763.                Wait 10*DEL
  3764.                CLRINFO
  3765.                Goto CCSELLKEY
  3766.             End If 
  3767.             SELLCC2=SELLCC2/QQ
  3768.             If SELLCC2<0
  3769.                Boom 
  3770.                CLRINFO
  3771.                Goto SELLEND
  3772.             End If 
  3773.             If PM(SELLCC)<SELLCC2
  3774.                CLRINFO
  3775.                LOKATE[23,13]
  3776.                CHPRT[Pen$(PC(SELLCC))+PL$(SELLCC)+Pen$(14)+" doesn't have that much money!   "]
  3777.                Wait 10*DEL
  3778.                CLRINFO
  3779.                Goto SELLEND
  3780.             End If 
  3781.             CCSELL3:
  3782.             LOKATE[23,18]
  3783.             CHPRT[Pen$(PC(SELLCC))+PL$(SELLCC)+Pen$(14)+", do you agree?  (Y/n)    "]
  3784.             Clear Key 
  3785.             If COMPPLY(SELLCC)=1
  3786.                If PM(SELLCC)>200 and SELLCC2<50
  3787.                   Clear Key 
  3788.                   Put Key "y"
  3789.                Else 
  3790.                   Clear Key 
  3791.                   Put Key "n"
  3792.                End If 
  3793.             End If 
  3794.             KEYGET
  3795.             LOKATE[23,19]
  3796.             CHPRT[A$]
  3797.             If COMPPLY(SELLCC)=1
  3798.                Wait 6*DEL
  3799.             End If 
  3800.             If A$=Chr$(13)
  3801.                A$="y"
  3802.             End If 
  3803.             A$=Lower$(A$)
  3804.             If A$<>"n" and A$<>"y"
  3805.                Goto CCSELL3
  3806.             End If 
  3807.             If A$="n"
  3808.                Boom 
  3809.                Wait 10*DEL
  3810.                CLRINFO
  3811.                Goto SELLEND
  3812.             End If 
  3813.             GOOJFCC=SELLCC
  3814.             Screen 2
  3815.             Ink 9
  3816.             Paint 180,(-50+(50*BVD(SELLCC)+23)),1
  3817.             Ink 11
  3818.             Paint 180,(-50+(50*BVD(L)+23)),1
  3819.             Ink 14
  3820.             Screen 0
  3821.             PM(SELLCC)=PM(SELLCC)-SELLCC2
  3822.             PM(L)=PM(L)+SELLCC2
  3823.          End If 
  3824.       End If 
  3825.       Goto SELLEND
  3826.    End If 
  3827.    If SEC=NP+2
  3828.       If GOOJFC<>L
  3829.          LOKATE[23,14]
  3830.          CHPRT["Sorry, you don't own the"]
  3831.          LOKATE[23,15]
  3832.          DPEN[4]
  3833.          CHPRT["GET OUT OF JAIL FREE - Chance"+Pen$(14)+" card."]
  3834.          DPEN[14]
  3835.       Else 
  3836.          If SF$="y"
  3837.             LOKATE[23,14]
  3838.             CHPRT["You sell the "]
  3839.             LOKATE[23,15]
  3840.             DPEN[4]
  3841.             CHPRT["GET OUT OF JAIL FREE - Chance"+Pen$(14)+" card."]
  3842.             DPEN[14]
  3843.             LOKATE[23,16]
  3844.             QQUEST[25]
  3845.             CHPRT["for "+Pen$(2)+C$+QQ$+"."]
  3846.             DPEN[14]
  3847.             GOOJFC=0
  3848.             Ink 11
  3849.             Screen 2
  3850.             Paint 180,(-50+(50*BVD(L)+17)),1
  3851.             Ink 14
  3852.             PM(L)=PM(L)+25
  3853.             Screen 0
  3854.             UDATEMONEY
  3855.          Else 
  3856.             CSELL:
  3857.             LOKATE[23,13]
  3858.             DPEN[14]
  3859.             CHPRT["Which player wants to buy the"]
  3860.             DPEN[4]
  3861.             LOKATE[23,14]
  3862.             CHPRT["GET OUT OF JAIL FREE - Chance"+Pen$(14)+" card?"]
  3863.             LOKATE[23,15]
  3864.             JUNK$="("
  3865.             For SELFJ=1 To NP-1
  3866.                JUNK$=JUNK$+Str$(SELFJ)+","
  3867.             Next SELFJ
  3868.             JUNK$=JUNK$+" or"+Str$(NP)+") ?"
  3869.             CHPRT[JUNK$]
  3870.             Clear Key 
  3871.             KEYGET
  3872.             LOKATE[23,16]
  3873.             CHPRT[A$]
  3874.             SELLC=Val(A$)
  3875.             If SELLC<1 or SELLC>NP
  3876.                Goto CSELL
  3877.             End If 
  3878.             CSELL2:
  3879.             LOKATE[23,17]
  3880.             CHPRT["What is the agreed selling price?"]
  3881.             Clear Key 
  3882.             BD$=""
  3883.             CSELLKEY:
  3884.             NUMGET
  3885.             B$=A$
  3886.             If B$<>Chr$(13)
  3887.                If B$=Chr$(8)
  3888.                   BD$=""
  3889.                   CLRINFO
  3890.                   Goto CSELL2
  3891.                End If 
  3892.                BD$=BD$+B$
  3893.                LOKATE[23,18]
  3894.                CHPRT[BD$]
  3895.                Goto CSELLKEY
  3896.             End If 
  3897.             SELLC2=Val(BD$)
  3898.             If((SELLC2/QQ)*QQ)<>SELLC2
  3899.                CLRINFO
  3900.                LOKATE[23,13]
  3901.                CHPRT["You must use increments of "+Str$(QQ)]
  3902.                Wait 10*DEL
  3903.                CLRINFO
  3904.                Goto CSELLKEY
  3905.             End If 
  3906.             SELLC2=SELLC2/QQ
  3907.             If SELLC2<0
  3908.                Boom 
  3909.                CLRINFO
  3910.                Goto SELLEND
  3911.             End If 
  3912.             If PM(SELLC)<SELLC2
  3913.                CLRINFO
  3914.                LOKATE[23,13]
  3915.                CHPRT[Pen$(PC(SELLC))+PL$(SELLC)+Pen$(14)+" doesn't have that much money!   "]
  3916.                Wait 10*DEL
  3917.                CLRINFO
  3918.                Goto SELLEND
  3919.             End If 
  3920.             CSELL3:
  3921.             LOKATE[23,18]
  3922.             CHPRT[Pen$(PC(SELLC))+PL$(SELLC)+Pen$(14)+", do you agree? (Y/n)    "]
  3923.             Clear Key 
  3924.             If COMPPLY(SELLC)=1
  3925.                If PM(SELLC)>200 and SELLC2<50
  3926.                   Clear Key 
  3927.                   Put Key "y"
  3928.                Else 
  3929.                   Clear Key 
  3930.                   Put Key "n"
  3931.                End If 
  3932.             End If 
  3933.             KEYGET
  3934.             LOKATE[23,19]
  3935.             CHPRT[A$]
  3936.             If COMPPLY(SELLC)=1
  3937.                Wait 6*DEL
  3938.             End If 
  3939.             If A$=Chr$(13)
  3940.                A$="y"
  3941.             End If 
  3942.             A$=Lower$(A$)
  3943.             If A$<>"n" and A$<>"y"
  3944.                Goto CSELL3
  3945.             End If 
  3946.             If A$="n"
  3947.                Boom 
  3948.                Wait 10*DEL
  3949.                CLRINFO
  3950.                Goto SELLEND
  3951.             End If 
  3952.             GOOJFC=SELLC
  3953.             Screen 2
  3954.             Ink 5
  3955.             Paint 180,(-50+(50*BVD(SELLC)+17)),1
  3956.             Ink 11
  3957.             Paint 180,(-50+(50*BVD(L)+17)),1
  3958.             Ink 14
  3959.             Screen 0
  3960.             PM(SELLC)=PM(SELLC)-SELLC2
  3961.             PM(L)=PM(L)+SELLC2
  3962.          End If 
  3963.       End If 
  3964.    End If 
  3965.    Goto SELLEND
  3966. End If 
  3967. LOKATE[23,13] : CHPRT["Please click on a property that you"]
  3968. LOKATE[23,14] : CHPRT["want to sell."]
  3969. LOKATE[23,16] : CHPRT["Click 'OK' or 'CANCEL'"]
  3970. LOKATE[23,17] : CHPRT["if you change your mind."]
  3971. SELLTOLOOP:
  3972. Gosub CLICK
  3973. If X=JUNKCAN or X=JUNKOK
  3974.    Bell 1
  3975.    Goto SELLEND
  3976. End If 
  3977. LOKATE[23,12]
  3978. CLRINFO
  3979. PRTINFO[X]
  3980. LOKATE[23,15]
  3981. DPEN[14]
  3982. SELL1=X
  3983. If PROPOWN(SELL1)<>L
  3984.    LOKATE[23,18]
  3985.    CHPRT["Sorry, you don't own that"]
  3986.    Goto SELLTOLOOP
  3987. End If 
  3988. If HOUSE(SELL1)<>0
  3989.    LOKATE[23,15]
  3990.    CHPRT["You can't sell developed properties"]
  3991.    Goto SELLTOLOOP
  3992. End If 
  3993. DPEN[14]
  3994. SELL2:
  3995. LOKATE[23,16]
  3996. CHPRT["What is the agreed selling price? "]
  3997. Clear Key 
  3998. BD$=""
  3999. SELLKEY:
  4000. NUMGET
  4001. B$=A$
  4002. If B$<>Chr$(13)
  4003.    If B$=Chr$(8)
  4004.       BD$=""
  4005.       CLRINFO
  4006.       Goto SELL2
  4007.    End If 
  4008.    BD$=BD$+B$
  4009.    LOKATE[23,17]
  4010.    CHPRT[BD$]
  4011.    Goto SELLKEY
  4012. End If 
  4013. SELLPRICE=Val(BD$)
  4014. If((SELLPRICE/QQ)*QQ)<>SELLPRICE
  4015.    CLRINFO
  4016.    LOKATE[23,13]
  4017.    CHPRT["You must use increments of "+Str$(QQ)]
  4018.    Wait 10*DEL
  4019.    CLRINFO
  4020.    Goto SELLKEY
  4021. End If 
  4022. SELLPRICE=SELLPRICE/QQ
  4023. If SELLPRICE<0
  4024.    Boom 
  4025.    CLRINFO
  4026.    Goto SELLEND
  4027. End If 
  4028. If PM(SEC)<SELLPRICE
  4029.    CLRINFO
  4030.    LOKATE[23,13]
  4031.    CHPRT[Pen$(PC(SEC))+PL$(SEC)+Pen$(14)+" doesn't have that much money!   "]
  4032.    Wait 10*DEL
  4033.    CLRINFO
  4034.    Goto SELL2
  4035. End If 
  4036. SELL3:
  4037. LOKATE[23,18]
  4038. CHPRT[Pen$(PC(SEC))+PL$(SEC)+Pen$(14)+", do you agree? (Y/n)    "]
  4039. Clear Key 
  4040. If COMPPLY(SEC)=1
  4041.    Gosub COMPSELL
  4042. End If 
  4043. KEYGET
  4044. LOKATE[23,19]
  4045. CHPRT[A$]
  4046. If COMPPLY(SEC)=1
  4047.    Wait 6*DEL
  4048. End If 
  4049. If A$=Chr$(13)
  4050.    A$="y"
  4051. End If 
  4052. A$=Lower$(A$)
  4053. If A$<>"n" and A$<>"y"
  4054.    Goto SELL3
  4055. End If 
  4056. If A$="n"
  4057.    Boom 
  4058.    CLRINFO
  4059.    Goto SELLEND
  4060. End If 
  4061. PROPOWN(SELL1)=SEC
  4062. UFILL[SELL1,L]
  4063. DFILL[SELL1,SEC]
  4064. PM(SEC)=PM(SEC)-SELLPRICE
  4065. PM(L)=PM(L)+SELLPRICE
  4066. UDATESETS
  4067. Bell 80
  4068. UDATEMONEY
  4069. If CURRENT(SELL1)=0
  4070.    SOLDMORT
  4071. End If 
  4072. SELLEND:
  4073. UDATEMONEY
  4074. Wait 4*DEL
  4075. CLRINFO
  4076. Gosub UPINFO
  4077. UDATESETS
  4078. Clear Key 
  4079. If COMPPLY(L)=0
  4080.    Show On 
  4081. End If 
  4082. Menu On 
  4083. On Menu On 
  4084. Return 
  4085.  
  4086. TRADE:
  4087. SEC=Choice(2)
  4088. Menu Off 
  4089. CLRINFO
  4090. LOKATE[23,13] : CHPRT["Please click on a property that you"]
  4091. LOKATE[23,14] : CHPRT["want to trade."]
  4092. LOKATE[23,16] : CHPRT["Click 'OK' or 'CANCEL'"]
  4093. LOKATE[23,17] : CHPRT["if you change your mind."]
  4094. TRADELOOP:
  4095. Gosub CLICK
  4096. CLRINFO
  4097. If X=JUNKCAN or X=JUNKOK
  4098.    Bell 1
  4099.    Goto TRADEEND
  4100. End If 
  4101. LOKATE[23,12]
  4102. CLRINFO
  4103. PRTINFO[X]
  4104. LOKATE[23,15]
  4105. DPEN[14]
  4106. SELL1=X
  4107. If PROPOWN(SELL1)<>L
  4108.    LOKATE[23,18]
  4109.    CHPRT["Sorry, you don't own that"]
  4110.    Goto TRADELOOP
  4111. End If 
  4112. If HOUSE(SELL1)<>0
  4113.    LOKATE[23,15]
  4114.    CHPRT["You can't trade developed properties"]
  4115.    Goto TRADELOOP
  4116. End If 
  4117. DPEN[14]
  4118. LOKATE[23,16] : CHPRT["Please click on a property that you"]
  4119. LOKATE[23,17] : CHPRT["want to trade for."]
  4120. LOKATE[23,19] : CHPRT["Click 'OK' or 'CANCEL'"]
  4121. LOKATE[23,20] : CHPRT["if you change your mind."]
  4122. TRADELOOP2:
  4123. Gosub CLICK
  4124. CLRINFO
  4125. SELL2=X
  4126. If X=JUNKCAN or X=JUNKOK
  4127.    Bell 1
  4128.    Goto TRADEEND
  4129. End If 
  4130. LOKATE[23,12]
  4131. PRTINFO[X]
  4132. LOKATE[23,15]
  4133. DPEN[14]
  4134. If PROPOWN(SELL2)<>SEC
  4135.    LOKATE[23,18]
  4136.    CHPRT["Sorry, "+Pen$(PC(SEC))+PL$(SEC)+Pen$(14)+" doesn't own that."]
  4137.    Goto TRADELOOP2
  4138. End If 
  4139. If HOUSE(SELL2)<>0
  4140.    LOKATE[23,15]
  4141.    CHPRT["You can't trade developed properties"]
  4142.    Goto TRADELOOP2
  4143. End If 
  4144. TRADE2:
  4145. LOKATE[23,18]
  4146. CHPRT[Pen$(PC(SEC))+PL$(SEC)+Pen$(14)+", do you agree? (Y/n)    "]
  4147. Clear Key 
  4148. If COMPPLY(SEC)=1
  4149.    Gosub COMPTRADE
  4150. End If 
  4151. KEYGET
  4152. LOKATE[23,19]
  4153. CHPRT[A$]
  4154. If COMPPLY(SEC)=1
  4155.    Wait 6*DEL
  4156. End If 
  4157. If A$=Chr$(13)
  4158.    A$="y"
  4159. End If 
  4160. A$=Lower$(A$)
  4161. If A$<>"n" and A$<>"y"
  4162.    Goto TRADE2
  4163. End If 
  4164. If A$="n"
  4165.    Boom 
  4166.    Goto TRADEEND
  4167. End If 
  4168. Swap PROPOWN(SELL1),PROPOWN(SELL2)
  4169. UFILL[SELL1,L]
  4170. UFILL[SELL2,SEC]
  4171. DFILL[SELL1,SEC]
  4172. DFILL[SELL2,L]
  4173. UDATESETS
  4174. UDATEMONEY
  4175. Bell 80
  4176. If CURRENT(SELL1)=0
  4177.    SOLDMORT
  4178. End If 
  4179. UDATEMONEY
  4180. If CURRENT(SELL2)=0
  4181.    SELL1=SELL2
  4182.    SEC=L
  4183.    SOLDMORT
  4184. End If 
  4185. UDATEMONEY
  4186. TRADEEND:
  4187. Wait 6*DEL
  4188. CLRINFO
  4189. Gosub UPINFO
  4190. Clear Key 
  4191. If COMPPLY(L)=0
  4192.    Show On 
  4193. End If 
  4194. Menu On 
  4195. On Menu On 
  4196. Return 
  4197.  
  4198. SHO:
  4199. Menu Off 
  4200. CLRINFO
  4201. SHOC=Choice(2)
  4202. Dec SHOC
  4203. Wait Vbl 
  4204. Screen 1
  4205. Wait Vbl 
  4206. Cls 0
  4207. Wait Vbl 
  4208. Screen To Front 1
  4209. For J=0 To 14
  4210.    Locate 38,J
  4211.    Paper 14
  4212.    Print " ";
  4213. Next J
  4214. Paper 0
  4215. Pen 14
  4216. Locate 0,0 : Print "NAME"; : Locate 40,0 : Print "NAME";
  4217. Locate 18,0 : Print "OWNER"; : Locate 59,0 : Print "OWNER";
  4218. If QQ=1
  4219.    Locate 32,0 : Print "H"; : Locate 73,0 : Print "H";
  4220.    Locate 34,0 : Print "RENT"; : Locate 75,0 : Print "RENT";
  4221. Else 
  4222.    Locate 30,0 : Print "H"; : Locate 71,0 : Print "H";
  4223.    Locate 32,0 : Print "RENT"; : Locate 73,0 : Print "RENT";
  4224. End If 
  4225. SHOY1=1 : SHOY2=1
  4226. For J1=1 To 25
  4227.    If(PRICE(J1)>0) and(RENT(J1,0)<999) and((SHOC=NP+1) or(PROPOWN(J1)=SHOC))
  4228.       Pen PCOLOR(J1)
  4229.       Locate 0,SHOY1
  4230.       Print PROP$(J1);
  4231.       Pen PC(PROPOWN(J1))
  4232.       Locate 18,SHOY1
  4233.       Print PL$(PROPOWN(J1));
  4234.       Pen 14
  4235.       If QQ=1
  4236.          Locate 31,SHOY1
  4237.       Else 
  4238.          Locate 29,SHOY1
  4239.       End If 
  4240.       If HOUSE(J1)=5
  4241.          Print " H";
  4242.       Else 
  4243.          Print HOUSE(J1);
  4244.       End If 
  4245.       Pen 2
  4246.       UN$="" : OFF$=""
  4247.       If CURRENT(J1)>RENT(J1,0) or CURRENT(J1)=0
  4248.          UN$=Paper$(2)+Pen$(0) : OFF$=Paper$(0)+Pen$(2)
  4249.       End If 
  4250.       If QQ=1
  4251.          Locate 33,SHOY1
  4252.       Else 
  4253.          Locate 31,SHOY1
  4254.       End If 
  4255.       If CURRENT(J1)=0
  4256.          Print UN$;" MORT";OFF$;
  4257.       Else 
  4258.          J1UNK=CURRENT(J1)
  4259.          QQUEST[J1UNK]
  4260.          Print UN$;QQ$;OFF$;
  4261.       End If 
  4262.       Pen 14
  4263.       Inc SHOY1
  4264.    End If 
  4265.    If(J1+25)<41
  4266.       If(PRICE(J1+25)>0) and(RENT(J1+25,0)<999) and((SHOC=NP+1) or(PROPOWN(J1+25)=SHOC))
  4267.          Pen PCOLOR(J1+25)
  4268.          Locate 40,SHOY2
  4269.          Print PROP$(J1+25);
  4270.          Pen PC(PROPOWN(J1+25))
  4271.          Locate 59,SHOY2
  4272.          Print PL$(PROPOWN(J1+25));
  4273.          Pen 14
  4274.          If QQ=1
  4275.             Locate 72,SHOY2
  4276.          Else 
  4277.             Locate 70,SHOY2
  4278.          End If 
  4279.          If HOUSE(J1+25)=5
  4280.             Print " H";
  4281.          Else 
  4282.             Print HOUSE(J1+25);
  4283.          End If 
  4284.          Pen 2
  4285.          UN$="" : OFF$=""
  4286.          If CURRENT(J1+25)>RENT(J1+25,0) or CURRENT(J1+25)=0
  4287.             UN$=Paper$(2)+Pen$(0) : OFF$=Paper$(0)+Pen$(2)
  4288.          End If 
  4289.          If QQ=1
  4290.             Locate 74,SHOY2
  4291.          Else 
  4292.             Locate 72,SHOY2
  4293.          End If 
  4294.          If CURRENT(J1+25)=0
  4295.             Print UN$;" MORT";OFF$;
  4296.          Else 
  4297.             J1UNK=CURRENT(J1+25)
  4298.             QQUEST[J1UNK]
  4299.             Print UN$;QQ$;OFF$;
  4300.          End If 
  4301.          Pen 14
  4302.          Inc SHOY2
  4303.       End If 
  4304.    End If 
  4305.    J1UNK=0
  4306. Next J1
  4307. For J1=6 To 36 Step 10
  4308.    If SHOC=NP+1 or PROPOWN(J1)=SHOC
  4309.       Pen PCOLOR(J1)
  4310.       Locate 40,SHOY2
  4311.       Print PROP$(J1);
  4312.       Pen PC(PROPOWN(J1))
  4313.       Locate 59,SHOY2
  4314.       Print PL$(PROPOWN(J1));
  4315.       Pen 14
  4316.       If QQ=1
  4317.          Locate 73,SHOY2
  4318.       Else 
  4319.          Locate 71,SHOY2
  4320.       End If 
  4321.       Print "-";
  4322.       Pen 2
  4323.       If QQ=1
  4324.          Locate 74,SHOY2
  4325.       Else 
  4326.          Locate 72,SHOY2
  4327.       End If 
  4328.       UN$=Paper$(2)+Pen$(0) : OFF$=Paper$(0)+Pen$(2)
  4329.       If CURRENT(J1)=0
  4330.          Print UN$;" MORT";OFF$
  4331.       Else 
  4332.          J1UNK=CURRENT(J1)
  4333.          QQUEST[J1UNK]
  4334.          Print QQ$;
  4335.       End If 
  4336.       Pen 14
  4337.       Inc SHOY2
  4338.    End If 
  4339. Next J1
  4340. For J1=13 To 29 Step 16
  4341.    If SHOC=NP+1 or PROPOWN(J1)=SHOC
  4342.       Pen PCOLOR(J1)
  4343.       Locate 40,SHOY2
  4344.       Print PROP$(J1);
  4345.       Pen PC(PROPOWN(J1))
  4346.       Locate 59,SHOY2
  4347.       Print PL$(PROPOWN(J1));
  4348.       Pen 14
  4349.       If QQ=1
  4350.          Locate 73,SHOY2
  4351.       Else 
  4352.          Locate 71,SHOY2
  4353.       End If 
  4354.       Print "-";
  4355.       Pen 2
  4356.       If QQ=1
  4357.          Locate 74,SHOY2
  4358.       Else 
  4359.          Locate 72,SHOY2
  4360.       End If 
  4361.       If CURRENT(J1)=0
  4362.          Print UN$;" MORT";OFF$;
  4363.       Else 
  4364.          Print " N/A";
  4365.       End If 
  4366.       Pen 14
  4367.       Inc SHOY2
  4368.    End If 
  4369. Next J1
  4370. If GOOJFCC>0
  4371.    If GOOJFCC=L or SHOC=NP+1
  4372.       Pen 9
  4373.       Locate 0,17
  4374.       Centre "GET OUT OF JAIL FREE - C.CHEST  "+Pen$(PC(GOOJFCC))+PL$(GOOJFCC)
  4375.       Pen 14
  4376.    End If 
  4377. End If 
  4378. If GOOJFC>0
  4379.    If GOOJFC=L or SHOC=NP+1
  4380.       Pen 5
  4381.       Locate 0,18
  4382.       Centre "GET OUT OF JAIL FREE - CHANCE   "+Pen$(PC(GOOJFC))+PL$(GOOJFC)
  4383.       Pen 14
  4384.    End If 
  4385. End If 
  4386. If PARKING$="y"
  4387.    Pen 4
  4388.    Locate 0,19
  4389.    QQUEST[PARKING]
  4390.    Centre "Free Parking jackpot = "+Pen$(2)+C$+" "+QQ$
  4391.    Pen 14
  4392.    JUNK$=""
  4393. End If 
  4394. If LH$="y"
  4395.    Locate 0,20
  4396.    Centre "Houses left ="+Str$(HOUSESLEFT)+"    Hotels left ="+Str$(HOTELSLEFT)
  4397. End If 
  4398. Locate 0,22
  4399. Centre "Click Left Mouse button to continue."
  4400. While Mouse Click<>1 : Wend 
  4401. Sam Play 1
  4402. Screen To Front FCR
  4403. Clear Key 
  4404. Screen 0
  4405. Gosub UPINFO
  4406. Clear Key 
  4407. Hide On 
  4408. While Mouse Key<>0 : Wend 
  4409. While Mouse Click<>0 : Wend 
  4410. If COMPPLY(L)=0
  4411.    Show On 
  4412. End If 
  4413. Menu On 
  4414. On Menu On 
  4415. Return 
  4416.  
  4417. HBACK:
  4418. CLRINFO
  4419. PM(L)=MONEYBACK
  4420. HOUSESLEFT=HOUSEBACK
  4421. HOTELSLEFT=HOTELBACK
  4422. For X=1 To 40
  4423.    HOUSE(X)=HBACKUP(X) : CURRENT(X)=CURBACK(X)
  4424.    If RENT(X,1)<>RENT(X,2)
  4425.       Gosub HOUSEBOB
  4426.       Paste Bob HX,HY,((X-1)/5+45)
  4427.       Wait Vbl 
  4428.       If HOUSE(X)>0
  4429.          Paste Bob HX,HY,SHAP
  4430.          Wait Vbl 
  4431.       End If 
  4432.       Screen 2
  4433.       Ink PCOLOR(X)
  4434.       Bar DSX,DSY To DTX,DTY
  4435.       If HOUSE(X)>0
  4436.          Paste Bob DSX,DSY,DSHAP
  4437.       End If 
  4438.       Ink 14
  4439.       Screen 0
  4440.    End If 
  4441. Next X
  4442. UDATEMONEY
  4443. UDATEBOBS
  4444. Bell 1
  4445. Return 
  4446.  
  4447. UPINFO:
  4448. If DUBBLE>0
  4449.    J=L
  4450. Else 
  4451.    J=L-1
  4452.    If J=0
  4453.       J=NP
  4454.    End If 
  4455. End If 
  4456. PRTINFO[PPOS(J)]
  4457. Return 
  4458.  
  4459. COMPTRADE:
  4460. Clear Key 
  4461. JUNK=1*-(PROPOWN(SET1(SELL2))=L)+1*-(PROPOWN(SET2(SELL2))=L)
  4462. JUNK2=1*-(PROPOWN(SET1(SELL1))=SEC)+1*-(PROPOWN(SET2(SELL1))=SEC)
  4463. JUNK3=1*-(PROPOWN(SET1(SELL2))=SEC)+1*-(PROPOWN(SET2(SELL2))=SEC)
  4464. If JUNK>JUNK2
  4465.    Clear Key 
  4466.    Put Key "n"
  4467.    Return 
  4468. End If 
  4469. If JUNK2<JUNK3
  4470.    Clear Key 
  4471.    Put Key "n"
  4472.    Return 
  4473. End If 
  4474. If JUNK=JUNK2
  4475.    If PRICE(SELL1)>=PRICE(SELL2)
  4476.       Clear Key 
  4477.       Put Key "y"
  4478.       Return 
  4479.    Else 
  4480.       Clear Key 
  4481.       Put Key "n"
  4482.       Return 
  4483.    End If 
  4484. End If 
  4485. If PP(SEC)<>3
  4486.    If PRICE(SELL1)>=PRICE(SELL2)*(JUNK2-JUNK)
  4487.       Clear Key 
  4488.       Put Key "y"
  4489.       Return 
  4490.    Else 
  4491.       Clear Key 
  4492.       Put Key "n"
  4493.       Return 
  4494.    End If 
  4495. Else 
  4496.    JUNK=PRICE(SELL1)*PV1#(SELL1)
  4497.    JUNK2=PRICE(SELL2)*PV1#(SELL2)
  4498.    If JUNK>=JUNK2
  4499.       Clear Key 
  4500.       Put Key "y"
  4501.       Return 
  4502.    Else 
  4503.       Clear Key 
  4504.       Put Key "n"
  4505.       Return 
  4506.    End If 
  4507. End If 
  4508. Return 
  4509.  
  4510. COMPSELL:
  4511. Rem SELLPRICE=is selling price 
  4512. Rem SELL1=the property number
  4513. Rem SEC=compnumber 
  4514. Rem L=seller 
  4515. Clear Key 
  4516. JUNK=PRICE(SELL1)
  4517. If PROPOWN(SET1(SELL1))=PROPOWN(SET2(SELL1)) and PROPOWN(SET1(SELL1))<>0
  4518.    If PROPOWN(SET1(SELL1))=SEC
  4519.       JUNK=PRICE(SELL1)*3
  4520.    Else 
  4521.       JUNK=PRICE(SELL1)*2
  4522.    End If 
  4523. End If 
  4524. If PP(SEC)=3
  4525.    JUNK=PRICE(SELL1)*PV1#(SELL1)
  4526.    If PM(SEC)<JUNK
  4527.       JUNK=PM(SEC)
  4528.    End If 
  4529. End If 
  4530. If SELLPRICE<=JUNK
  4531.    Clear Key 
  4532.    Put Key "y"
  4533. Else 
  4534.    Clear Key 
  4535.    Put Key "n"
  4536. End If 
  4537. Return 
  4538.  
  4539. COMPBUY:
  4540. Rem BUYPRICE=is buying price   
  4541. Rem SELL1=the property number  
  4542. Rem SEC = comp's number
  4543. Rem L=buyer's number 
  4544. Clear Key 
  4545. JUNK=0 : JUNK2=0
  4546. If PROPOWN(SET1(SELL1))=PROPOWN(SET2(SELL1)) and PROPOWN(SET1(SELL1))<>0
  4547.    If PROPOWN(SET1(SELL1))=SEC
  4548.       Clear Key 
  4549.       Put Key "n"
  4550.       Return 
  4551.    End If 
  4552.    If PROPOWN(SET1(SELL1))=L
  4553.       Clear Key 
  4554.       Put Key "n"
  4555.       Return 
  4556.    End If 
  4557. End If 
  4558. If PM(SEC)>0
  4559.    If PROPOWN(SET1(SELL1))=L or PROPOWN(SET1(SELL1))=SEC
  4560.       JUNK=PRICE(SELL1)*3
  4561.    End If 
  4562.    If PROPOWN(SET2(SELL1))=L or PROPOWN(SET2(SELL1))=SEC
  4563.       JUNK=PRICE(SELL1)*3
  4564.    End If 
  4565.    If JUNK=0
  4566.       JUNK=PRICE(SELL1)*2
  4567.    End If 
  4568. Else 
  4569.    JUNK=PRICE(SELL1)
  4570. End If 
  4571. If PP(SEC)=3
  4572.    JUNK2=PRICE(SELL1)*10
  4573.    If PM(SEC)<0
  4574.       If(PM(SEC)+BUYPRICE)<0
  4575.          Clear Key 
  4576.          Put Key "n"
  4577.          Return 
  4578.       Else 
  4579.          Clear Key 
  4580.          Put Key "y"
  4581.          Return 
  4582.       End If 
  4583.    End If 
  4584.    If BUYPRICE<JUNK2
  4585.       Clear Key 
  4586.       Put Key "n"
  4587.       Return 
  4588.    End If 
  4589.    JUNK=0 : JUNK2=0
  4590.    JUNK=PRICE(SELL1)*PV1#(SELL1)
  4591. End If 
  4592. If BUYPRICE>=JUNK
  4593.    Clear Key 
  4594.    Put Key "y"
  4595. Else 
  4596.    Clear Key 
  4597.    Put Key "n"
  4598. End If 
  4599. JUNK=0
  4600. Return 
  4601.  
  4602. DLCC:
  4603. Screen 2
  4604. Ink 9
  4605. Bar 242,30 To 596,180
  4606. Screen Copy 3,270,26,480,45 To 2,314,32
  4607. JUNK=CCS1(CC)+16
  4608. Unpack JUNK To 4
  4609. Screen To Back 4
  4610. JUNK=CCX2(CC)-CCX1(CC)
  4611. JUNK=JUNK/2
  4612. JUNK=419-JUNK
  4613. Screen Copy 4,CCX1(CC),CCY1(CC),CCX2(CC),CCY2(CC) To 2,JUNK,55
  4614. Ink 14
  4615. Screen 0
  4616. Return 
  4617.  
  4618. DLC:
  4619. Screen 2
  4620. Ink 5
  4621. Bar 242,30 To 596,180
  4622. Screen Copy 3,60,31,152,48 To 2,373,32
  4623. JUNK=CS1(C)+10
  4624. Unpack JUNK To 4
  4625. Screen To Back 4
  4626. JUNK=CX2(C)-CX1(C)
  4627. JUNK=JUNK/2
  4628. JUNK=419-JUNK
  4629. Screen Copy 4,CX1(C),CY1(C),CX2(C),CY2(C) To 2,JUNK,55
  4630. Ink 14
  4631. Screen 0
  4632. Return 
  4633.  
  4634. Procedure KEYGET
  4635.    If COMPPLY(L)=0
  4636.       Show On 
  4637.    End If 
  4638.    MZ=0
  4639.    Repeat 
  4640.       If Mouse Click=1
  4641.          MZ=Mouse Zone
  4642.       End If 
  4643.       A$=Inkey$
  4644.       If DL$="n"
  4645.          If MZ=43
  4646.             A$="y"
  4647.             OK
  4648.          End If 
  4649.          If MZ=44
  4650.             A$="n"
  4651.             CANCEL
  4652.          End If 
  4653.       Else 
  4654.          If MZ=41 or MZ=44
  4655.             A$="y"
  4656.             OK
  4657.          End If 
  4658.          If MZ=42 or MZ=45
  4659.             A$="n"
  4660.             CANCEL
  4661.          End If 
  4662.       End If 
  4663.       MZ=0
  4664.    Until A$<>""
  4665.    Hide On 
  4666.    MZ=0
  4667. End Proc
  4668.  
  4669. Procedure NUMGET
  4670.    MZ=0
  4671.    Repeat 
  4672.       If Mouse Click=1
  4673.          MZ=Mouse Zone
  4674.       End If 
  4675.       A$=Inkey$
  4676.       If DL$="n"
  4677.          If MZ=44
  4678.             A$="-1"
  4679.             Put Key Chr$(13)
  4680.             CANCEL
  4681.          End If 
  4682.       Else 
  4683.          If MZ=42 or MZ=45
  4684.             A$="-1"
  4685.             Put Key Chr$(13)
  4686.             CANCEL
  4687.          End If 
  4688.       End If 
  4689.       MZ=0
  4690.    Until A$<>""
  4691.    MZ=0
  4692. End Proc
  4693.  
  4694. Procedure DPEN[KI]
  4695.    Pen KI
  4696.    Screen 2
  4697.    Pen KI
  4698.    Screen 0
  4699. End Proc
  4700.  
  4701. Procedure DPAPER[KI]
  4702.    Paper KI
  4703.    Screen 2
  4704.    Paper KI
  4705.    Screen 0
  4706. End Proc
  4707.  
  4708. Procedure LOKATE[KX,KY]
  4709.    Locate KX,KY
  4710.    Screen 2
  4711.    Locate KX+1,KY+2
  4712.    Screen 0
  4713. End Proc
  4714.  
  4715. Procedure COMPLFTMORT[TP]
  4716.    Clear Key 
  4717.    If PM(SEC)>(TP+200)
  4718.       Clear Key 
  4719.       Put Key "y"
  4720.    Else 
  4721.       Clear Key 
  4722.       Put Key "n"
  4723.    End If 
  4724. End Proc
  4725.  
  4726. Procedure SOLDMORT
  4727.    UDATEMONEY
  4728.    SELLM:
  4729.    CLRINFO
  4730.    TENPER=0 : TENPER2=0
  4731.    TENPER=PRICE(SELL1)/2 : TENPER=TENPER+(PRICE(SELL1)/10)
  4732.    TENPER2=PRICE(SELL1)/10
  4733.    LOKATE[23,12]
  4734.    CHPRT[Pen$(4)+"Attention!"+Pen$(14)+" - "+Pen$(PC(SEC))+PL$(SEC)+Pen$(14)+"   "]
  4735.    LOKATE[23,13]
  4736.    CHPRT["The property you received is mortgaged."]
  4737.    LOKATE[23,14]
  4738.    QQUEST[TENPER]
  4739.    CHPRT["You must either pay "+C$+QQ$+" to lift"]
  4740.    LOKATE[23,15]
  4741.    QQUEST[TENPER2]
  4742.    CHPRT["the mortgage now or pay "+C$+QQ$+" now"]
  4743.    LOKATE[23,16]
  4744.    QQUEST[TENPER]
  4745.    CHPRT["and another "+C$+QQ$+" when you lift the"]
  4746.    LOKATE[23,17]
  4747.    CHPRT["mortgage later."]
  4748.    LOKATE[23,19]
  4749.    CHPRT["Do you want to lift the mortgage now? (Y/n) "]
  4750.    Clear Key 
  4751.    If COMPPLY(SEC)=1
  4752.       COMPLFTMORT[TENPER]
  4753.    End If 
  4754.    KEYGET
  4755.    If COMPPLY(SEC)=1
  4756.       Wait 6*DEL
  4757.    End If 
  4758.    If A$=Chr$(13)
  4759.       A$="y"
  4760.    End If 
  4761.    LOKATE[23,20]
  4762.    CHPRT[A$]
  4763.    A$=Lower$(A$)
  4764.    If A$<>"n" and A$<>"y"
  4765.       Goto SELLM
  4766.    End If 
  4767.    If A$="y"
  4768.       PM(SEC)=PM(SEC)-TENPER
  4769.       CURRENT(SELL1)=RENT(SELL1,0)
  4770.    Else 
  4771.       PM(SEC)=PM(SEC)-TENPER2
  4772.    End If 
  4773.    Bell 80
  4774.    UDATEMONEY
  4775.    CLRINFO
  4776.    DPEN[14]
  4777. End Proc
  4778.  
  4779. Procedure UDATEBOBS
  4780.    Wait Vbl 
  4781.    If D1<1
  4782.       D1=6
  4783.    End If 
  4784.    Paste Bob 1,1,D1+19
  4785.    Wait Vbl 
  4786.    Paste Bob 1,1,D1+19
  4787.    Wait Vbl 
  4788. End Proc
  4789.  
  4790. Procedure M1
  4791.    Rem Dragnet theme
  4792.    Sam Play %1001,2
  4793.    If Ntsc
  4794.       Wait 360
  4795.    Else 
  4796.       Wait 300
  4797.    End If 
  4798. End Proc
  4799.  
  4800. Procedure M2
  4801.    Rem siren1 
  4802.    Sam Play %1001,3
  4803.    If Ntsc
  4804.       Wait 120
  4805.    Else 
  4806.       Wait 100
  4807.    End If 
  4808. End Proc
  4809.  
  4810. Procedure M3
  4811.    Rem Hi-Lo siren
  4812.    Sam Play %1001,4
  4813.    If Ntsc
  4814.       Wait 270
  4815.    Else 
  4816.       Wait 225
  4817.    End If 
  4818. End Proc
  4819.  
  4820. Procedure SHUFFLECHANCE
  4821.    For J=1 To 16
  4822.       K=(Rnd(15)+1)
  4823.       Swap CHANCE1$(J),CHANCE1$(K)
  4824.       Swap CHANCE2$(J),CHANCE2$(K)
  4825.       Swap CHANCE3$(J),CHANCE3$(K)
  4826.       Swap CHANCE4$(J),CHANCE4$(K)
  4827.       Swap CMON(J),CMON(K)
  4828.       Swap CSPEC(J),CSPEC(K)
  4829.       Swap CS1(J),CS1(K)
  4830.       Swap CX1(J),CX1(K)
  4831.       Swap CY1(J),CY1(K)
  4832.       Swap CX2(J),CX2(K)
  4833.       Swap CY2(J),CY2(K)
  4834.    Next J
  4835. End Proc
  4836.  
  4837. Procedure SHUFFLECHEST
  4838.    For J=1 To 16
  4839.       K=(Rnd(15)+1)
  4840.       Swap CCHEST1$(J),CCHEST1$(K)
  4841.       Swap CCHEST2$(J),CCHEST2$(K)
  4842.       Swap CCHEST3$(J),CCHEST3$(K)
  4843.       Swap CCMON(J),CCMON(K)
  4844.       Swap CCSPEC(J),CCSPEC(K)
  4845.       Swap CCS1(J),CCS1(K)
  4846.       Swap CCX1(J),CCX1(K)
  4847.       Swap CCY1(J),CCY1(K)
  4848.       Swap CCX2(J),CCX2(K)
  4849.       Swap CCY2(J),CCY2(K)
  4850.    Next J
  4851. End Proc
  4852.  
  4853. Procedure CLRINFO
  4854.    Ink 0
  4855.    Bar 182,96 To 560,167
  4856.    Wait Vbl 
  4857.    Screen 2
  4858.    Ink 0
  4859.    Bar 242,109 To 596,183
  4860.    Wait Vbl 
  4861.    Screen 0
  4862. End Proc
  4863.  
  4864. Procedure PRTINFO[Q]
  4865.    LOKATE[23,12]
  4866.    DPEN[PCOLOR(Q)]
  4867.    CHPRT[PROP$(Q)]
  4868.    DPEN[14]
  4869.    If Q=39
  4870.       LOKATE[23,14]
  4871.       If COUNTRY=1 or COUNTRY=8 or COUNTRY=9
  4872.          CHPRT["Pay "+C$+"75"]
  4873.       Else 
  4874.          QQUEST[100]
  4875.          CHPRT["Pay "+C$+QQ$]
  4876.       End If 
  4877.       Pop Proc
  4878.    End If 
  4879.    If Q=5
  4880.       If CH$<>"y"
  4881.          QQUEST[200]
  4882.          LOKATE[23,14] : CHPRT["Pay "+C$+QQ$]
  4883.       Else 
  4884.          LOKATE[23,14] : CHPRT["Pay 10%"]
  4885.          LOKATE[23,15] : CHPRT["or"]
  4886.          LOKATE[23,16] : CHPRT[C$+"200"]
  4887.       End If 
  4888.       Pop Proc
  4889.    End If 
  4890.    If Q=1
  4891.       LOKATE[23,14] : QQUEST[200] : CHPRT["(Collect "+C$+QQ$+")"]
  4892.       Pop Proc
  4893.    End If 
  4894.    If PRICE(Q)>0
  4895.       LOKATE[23,13] : QQUEST[PRICE(Q)] : CHPRT["Price "+C$+QQ$]
  4896.    End If 
  4897.    If RENT(Q,0)>0 and RENT(Q,0)<999
  4898.       If CURRENT(Q)<>RENT(Q,0)
  4899.          RV$=Paper$(14)+Pen$(0) : RO$=Paper$(0)+Pen$(14)
  4900.          LOKATE[28,14]
  4901.       Else 
  4902.          RV$="" : RO$=""
  4903.          LOKATE[23,14]
  4904.       End If 
  4905.       QQUEST[CURRENT(Q)]
  4906.       CHPRT["  "+RV$+"Rent "+C$+QQ$+RO$+"  "]
  4907.    End If 
  4908.    If RENT(Q,0)=1002
  4909.       QQUEST[CURRENT(Q)]
  4910.       LOKATE[23,14] : CHPRT["Rent "+C$+QQ$]
  4911.    End If 
  4912.    If PRICE(Q)>0
  4913.       LOKATE[23,16]
  4914.       CHPRT["Owner - "+Pen$(PC(PROPOWN(Q)))+PL$(PROPOWN(Q))]
  4915.       DPEN[14]
  4916.    End If 
  4917. End Proc
  4918.  
  4919. Procedure UDATENAME
  4920.    Ink 0
  4921.    UDMJ2=42+(8*NP)
  4922.    UDMJ3=320
  4923.    If Len(C$)=2
  4924.       UDMJ3=304
  4925.    End If 
  4926.    Bar 182,42 To UDMJ3,UDMJ2
  4927.    For UDMJ=1 To NP
  4928.       If Len(C$)=1
  4929.          X1$=Pen$(14)+Right$(Str$(UDMJ),1)+") "
  4930.       Else 
  4931.          X1$=" "
  4932.       End If 
  4933.       X2$=PL$(UDMJ)+"             " : X2$=Left$(X2$,13)
  4934.       Locate 23,4+UDMJ : Print X1$;Pen$(PC(UDMJ));X2$
  4935.    Next UDMJ
  4936.    Pen 14
  4937. End Proc
  4938.  
  4939. Procedure UDATEMONEY
  4940.    For UDMJ=1 To DNP
  4941.       If UDMJ<=NP
  4942.          X$=Str$(PM(UDMJ)*QQ)+"          " : X$=Left$(X$,10) : X$=Right$(X$,9)
  4943.          If Len(C$)=1
  4944.             Locate 40,4+UDMJ : Pen 2
  4945.          Else 
  4946.             Locate 38,4+UDMJ : Pen 2
  4947.          End If 
  4948.          If PM(UDMJ)<0
  4949.             Pen 4
  4950.          End If 
  4951.          Print C$;" ";X$
  4952.       End If 
  4953.       Screen 1
  4954.       HRM$=Str$(PM(UDMJ))
  4955.       Locate 0,0
  4956.       HRM$="       "+HRM$
  4957.       HRM$=Right$(HRM$,7)
  4958.       Paper 0
  4959.       Pen 2
  4960.       If PM(UDMJ)<0
  4961.          Pen 4
  4962.       End If 
  4963.       If PL$(UDMJ)=""
  4964.          HRM$="  Dead  " : Pen 14
  4965.       End If 
  4966.       Print HRM$
  4967.       Screen 2
  4968.       Screen Copy 1,0,0,56,8 To 2,61,(BVD(UDMJ)*50)-33
  4969.       Pen 14
  4970.       Ink 0
  4971.       JUNK=-48+(50*(BVD(UDMJ)))
  4972.       If PL$(UDMJ)=""
  4973.          Bar 4,JUNK To 51,JUNK+23
  4974.          Paste Bob 4,JUNK,70
  4975.       Else 
  4976.          Paste Bob 4,JUNK,DLPC(UDMJ)-28
  4977.       End If 
  4978.       Screen 0
  4979.    Next UDMJ
  4980.    Pen 14
  4981.    Wait Vbl 
  4982.    HIGHLIGHTTURN
  4983. End Proc
  4984.  
  4985. Procedure UDATEPROP
  4986.    For UDMJ=1 To NP
  4987.       X$=PROP$(PPOS(UDMJ))+"                  " : X$=Left$(X$,18)
  4988.       Locate 52,4+UDMJ : Pen PCOLOR(PPOS(UDMJ)) : Print X$
  4989.    Next UDMJ
  4990.    Pen 14
  4991. End Proc
  4992.  
  4993. Procedure UDATESETS
  4994.    For J=1 To 40
  4995.       X=PROPOWN(J)
  4996.       If PRICE(J)<>0
  4997.          If CP$="y"
  4998.             If X=0
  4999.                Ink 0
  5000.             Else 
  5001.                Ink DPC(X)
  5002.             End If 
  5003.             If J<11
  5004.                B1=BX(J)+5 : B2=BY(J)-19 : B3=B1+20 : B4=B2+2
  5005.             Else If J=>11 and J<21
  5006.                B1=BX(J)+66 : B2=BY(J) : B3=B1+5 : B4=B2+8
  5007.             Else If J=>21 and J<31
  5008.                B1=BX(J)-28 : B2=BY(J)+19 : B3=B1+20 : B4=B2+2
  5009.             Else If J=>31
  5010.                B1=BX(J)-68 : B2=BY(J) : B3=B1+5 : B4=B2+8
  5011.             End If 
  5012.             Bar B1,B2 To B3,B4
  5013.             B1=0 : B2=0 : B3=0 : B4=0
  5014.          End If 
  5015.       End If 
  5016.       If CURRENT(J)=0
  5017.          Goto UDS
  5018.       End If 
  5019.       If RENT(J,5)>RENT(J,0) and X>0
  5020.          If PROPOWN(SET1(J))=X and PROPOWN(SET2(J))=X and HOUSE(J)=0
  5021.             CURRENT(J)=RENT(J,0)*2
  5022.          Else 
  5023.             CURRENT(J)=RENT(J,HOUSE(J))
  5024.          End If 
  5025.       End If 
  5026.       UDS:
  5027.    Next J
  5028.    For J=1 To NP
  5029.       RR=1*-(PROPOWN(6)=J)+1*-(PROPOWN(16)=J)+1*-(PROPOWN(26)=J)+1*-(PROPOWN(36)=J)
  5030.       For JJ=6 To 36 Step 10
  5031.          If PROPOWN(JJ)=J and CURRENT(JJ)>0
  5032.             CURRENT(JJ)=RRRENT(RR)
  5033.          Else 
  5034.             If PROPOWN(JJ)=0
  5035.                CURRENT(JJ)=25
  5036.             End If 
  5037.          End If 
  5038.       Next JJ
  5039.    Next J
  5040. End Proc
  5041.  
  5042. Procedure COMPITAX
  5043.    Clear Key 
  5044.    TENPER=0
  5045.    TENPER=TENPER+PM(L)
  5046.    For JJ=1 To 40
  5047.       If PROPOWN(JJ)=L
  5048.          TENPER=TENPER+PRICE(JJ)
  5049.          TENPER=TENPER+(HOUSE(JJ)*HOUSECOST(JJ))
  5050.       End If 
  5051.    Next JJ
  5052.    If TENPER>=2000
  5053.       Clear Key 
  5054.       Put Key "y"
  5055.    Else 
  5056.       Clear Key 
  5057.       Put Key "n"
  5058.    End If 
  5059.    Wait 3*DEL
  5060. End Proc
  5061.  
  5062. Procedure COMPBUY
  5063.    ZZ=PPOS(L)
  5064.    If PP(L)<3
  5065.       If PM(L)<=0
  5066.          Clear Key 
  5067.          Put Key "n"
  5068.          Wait 4*DEL
  5069.          Pop Proc
  5070.       End If 
  5071.       If PM(L)>(PRICE(PPOS(L)))
  5072.          Clear Key 
  5073.          Put Key "y"
  5074.          Wait 4*DEL
  5075.          Pop Proc
  5076.       End If 
  5077.       Clear Key 
  5078.       Put Key "n"
  5079.    Else 
  5080.       If PROPOWN(SET1(ZZ))=PROPOWN(SET2(ZZ))
  5081.          Clear Key 
  5082.          Put Key "y"
  5083.          Wait 4*DEL
  5084.          Pop Proc
  5085.       End If 
  5086.       If PROPOWN(SET1(ZZ))=L or PROPOWN(SET2(ZZ))=L
  5087.          Clear Key 
  5088.          Put Key "y"
  5089.          Wait 4*DEL
  5090.          Pop Proc
  5091.       End If 
  5092.       If PM(L)>((PRICE(PPOS(L)))/2)
  5093.          Clear Key 
  5094.          Put Key "y"
  5095.          Wait 4*DEL
  5096.          Pop Proc
  5097.       End If 
  5098.       Clear Key 
  5099.       Put Key "n"
  5100.    End If 
  5101.    Wait 4*DEL
  5102. End Proc
  5103.  
  5104. Procedure COMPBID
  5105.    JUNK=0 : JUNK$=""
  5106.    X=PPOS(L)
  5107.    MOSTBID=PRICE(X)
  5108.    LOWBID=HIBID
  5109.    If LOWBID>PRICE(X)
  5110.       
  5111.       If PROPOWN(SET1(X))<>0 and PROPOWN(SET1(X))=PROPOWN(SET2(X))
  5112.          If PP(H)=3
  5113.             If PROPOWN(SET1)<>H
  5114.                If RENT(X,0)<999
  5115.                   JUNK=PM(PROPOWN(SET1(X)))-HIBID
  5116.                   JUNK=JUNK/HOUSECOST(X)
  5117.                   If JUNK>H2
  5118.                      JUNK=H2
  5119.                   End If 
  5120.                   If JUNK<1
  5121.                      JUNK=0
  5122.                   End If 
  5123.                   JUNK=RENT(X,JUNK)
  5124.                End If 
  5125.                JUNK=JUNK*PV1#(X)
  5126.                MOSTBID=JUNK
  5127.             Else 
  5128.                MOSTBID=PRICE(X)*(1+PV1#(X))
  5129.             End If 
  5130.          Else 
  5131.             MOSTBID=MOSTBID*3
  5132.          End If 
  5133.       Else 
  5134.          If PP(H)=3
  5135.             MOSTBID=PRICE(X)*PV1#(X)
  5136.          Else 
  5137.             MOSTBID=MOSTBID+(PRICE(X)/2)
  5138.          End If 
  5139.       End If 
  5140.    End If 
  5141.    If CURRENT(X)=0
  5142.       MOSTBID=MOSTBID-(PRICE(X)/2)
  5143.    End If 
  5144.    If MOSTBID>PM(H) and PP(H)<>3
  5145.       If JUNK2=0
  5146.          MOSTBID=PM(H)+(PRICE(X)/2)
  5147.       Else 
  5148.          MOSTBID=PM(H)
  5149.       End If 
  5150.    End If 
  5151.    If PP(H)=3
  5152.       If JUNK<>0
  5153.          If MOSTBID>PM(H)
  5154.             MOSTBID=PM(H)
  5155.          End If 
  5156.       Else 
  5157.          JUNK=200
  5158.          For X=1 To 40
  5159.             If CURRENT(X)>JUNK
  5160.                JUNK=CURRENT : JUNK2=X
  5161.             Next X
  5162.             If MOSTBID>PM(H)-JUNK
  5163.                MOSTBID=PM(H)-JUNK
  5164.             End If 
  5165.          End If 
  5166.       End If 
  5167.    End If 
  5168.    If LOWBID>MOSTBID
  5169.       Clear Key 
  5170.       Put Key Chr$(13)
  5171.       Pop Proc
  5172.    End If 
  5173.    MYBID=LOWBID+20
  5174.    If MYBID<=HIBID
  5175.       MYBID=0
  5176.    End If 
  5177.    If HIBID=MOSTBID-1
  5178.       MYBID=MOSTBID
  5179.    End If 
  5180.    Clear Key 
  5181.    QQUEST[MYBID]
  5182.    Put Key QQ$+Chr$(13)
  5183.    JUNK=0 : JUNK2=0
  5184. End Proc
  5185.  
  5186. Procedure COMEONALONG
  5187.    BLANK$="                                        "
  5188.    If PM1=0
  5189.       NONBIDDERS=1
  5190.    End If 
  5191.    For X=1 To NP
  5192.       If PL$(X)=""
  5193.          NONBIDDERS=NONBIDDERS+1
  5194.       End If 
  5195.    Next X
  5196.    LOKATE[24,15] : CHPRT[BLANK$]
  5197.    LOKATE[24,16] : CHPRT[BLANK$]
  5198.    LOKATE[24,17] : CHPRT[BLANK$]
  5199.    LOKATE[24,18] : CHPRT[BLANK$]
  5200.    LOKATE[24,19] : CHPRT[BLANK$]
  5201.    JUNK=16
  5202.    If PPOS(L)=6 or PPOS(L)=16 or PPOS(L)=26 or PPOS(L)=36
  5203.       If PPOS(L)<>6 and PROPOWN(6)<>0
  5204.          B$=Pen$(PCOLOR(6))+PROP$(6)+Pen$(14)+" owned by "+Pen$(PC(PROPOWN(6)))+PL$(PROPOWN(6))
  5205.          LOKATE[24,JUNK]
  5206.          CHPRT[B$]
  5207.          Inc JUNK
  5208.       End If 
  5209.       If PPOS(L)<>16 and PROPOWN(16)<>0
  5210.          B$=Pen$(PCOLOR(6))+PROP$(16)+Pen$(14)+" owned by "+Pen$(PC(PROPOWN(16)))+PL$(PROPOWN(16))
  5211.          LOKATE[24,JUNK]
  5212.          CHPRT[B$]
  5213.          Inc JUNK
  5214.       End If 
  5215.       If PPOS(L)<>26 and PROPOWN(26)<>0
  5216.          B$=Pen$(PCOLOR(6))+PROP$(26)+Pen$(14)+" owned by "+Pen$(PC(PROPOWN(26)))+PL$(PROPOWN(26))
  5217.          LOKATE[24,JUNK]
  5218.          CHPRT[B$]
  5219.          Inc JUNK
  5220.       End If 
  5221.       If PPOS(L)<>36 and PROPOWN(36)<>0
  5222.          B$=Pen$(PCOLOR(6))+PROP$(36)+Pen$(14)+" owned by "+Pen$(PC(PROPOWN(36)))+PL$(PROPOWN(36))
  5223.          LOKATE[24,JUNK]
  5224.          CHPRT[B$]
  5225.          Inc JUNK
  5226.       End If 
  5227.    Else 
  5228.       If PROPOWN(SET1(PPOS(L)))<>0
  5229.          B$=Pen$(PCOLOR(PPOS(L)))+PROP$(SET1(PPOS(L)))+Pen$(14)+" owned by "
  5230.          B$=B$+Pen$(PC(PROPOWN(SET1(PPOS(L)))))+PL$(PROPOWN(SET1(PPOS(L))))
  5231.          LOKATE[24,16]
  5232.          CHPRT[B$]
  5233.          Inc JUNK
  5234.       End If 
  5235.       If SET1(PPOS(L))<>SET2(PPOS(L)) and PROPOWN(SET2(PPOS(L)))<>0
  5236.          B$=Pen$(PCOLOR(PPOS(L)))+PROP$(SET2(PPOS(L)))+Pen$(14)+" owned by "
  5237.          B$=B$+Pen$(PC(PROPOWN(SET2(PPOS(L)))))+PL$(PROPOWN(SET2(PPOS(L))))
  5238.          LOKATE[24,JUNK]
  5239.          CHPRT[B$]
  5240.       End If 
  5241.    End If 
  5242.    If B$<>""
  5243.       Wait 120
  5244.    End If 
  5245.    B$=""
  5246.    JUNK=0
  5247.    HIBID=0
  5248.    If NONBIDDERS=1
  5249.       H=L
  5250.    Else 
  5251.       H=M
  5252.       If H>NP
  5253.          H=1
  5254.       End If 
  5255.    End If 
  5256.    M=0
  5257.    A2:
  5258.    Inc H
  5259.    If H>NP
  5260.       H=1
  5261.    End If 
  5262.    If PL$(H)=""
  5263.       Goto A2
  5264.    End If 
  5265.    A3:
  5266.    DPAPER[0]
  5267.    B$=""
  5268.    QQUEST[HIBID]
  5269.    LOKATE[22,15] : CHPRT[BLANK$]
  5270.    LOKATE[22,16] : CHPRT[BLANK$]
  5271.    LOKATE[22,17] : CHPRT[BLANK$]
  5272.    LOKATE[22,18] : CHPRT[BLANK$]
  5273.    LOKATE[22,19] : CHPRT[BLANK$]
  5274.    If QQ<>1
  5275.       JUNK$=Str$(QQ)
  5276.       LOKATE[24,15] : CHPRT[Pen$(12)+"{ You must bid in increments of "+C$+JUNK$+" }   "]
  5277.    End If 
  5278.    LOKATE[24,17] : CHPRT[Pen$(14)+"The highest bid is "+C$+Pen$(2)+QQ$+Pen$(14)+" by "+Pen$(PC(M))+PL$(M)+Pen$(14)]
  5279.    LOKATE[24,18] : CHPRT["          "+Pen$(PC(H))+PL$(H)+","+S$+Pen$(14)+"  "]
  5280.    LOKATE[24,19] : CHPRT["bid higher than "+C$+Pen$(2)+QQ$+Pen$(14)+" or '0' for no bid."]
  5281.    JUNK$=""
  5282.    Clear Key 
  5283.    DPEN[2]
  5284.    If COMPPLY(H)=1
  5285.       Hide On 
  5286.       COMPBID
  5287.    Else 
  5288.       Show On 
  5289.    End If 
  5290.    LOKATE[23,20]
  5291.    CHPRT[BLANK$]
  5292.    BKEY:
  5293.    NUMGET
  5294.    B$=A$
  5295.    If B$="-1"
  5296.       B$=Chr$(13)
  5297.    End If 
  5298.    If B$<>Chr$(13)
  5299.       If B$=Chr$(8) or B$=Chr$(29)
  5300.          JBH=Len(BID$)
  5301.          BID$=Left$(BID$,JBH-1)
  5302.          LOKATE[23,20]
  5303.          CHPRT[BLANK$]
  5304.          LOKATE[23,20]
  5305.          CHPRT[BID$]
  5306.          Goto BKEY
  5307.       End If 
  5308.       BID$=BID$+B$
  5309.       LOKATE[23,20]
  5310.       CHPRT[BID$]
  5311.       If COMPPLY(H)=1
  5312.          Wait DEL
  5313.       End If 
  5314.       Goto BKEY
  5315.    End If 
  5316.    If COMPPLY(H)=1
  5317.       Wait DEL
  5318.    End If 
  5319.    BID=Val(BID$)
  5320.    BID$=""
  5321.    If BID<>0 and BID<=HIBID
  5322.       Boom : Goto A3
  5323.    End If 
  5324.    If((BID/QQ)*QQ)<>BID
  5325.       Shoot : Goto A3
  5326.    End If 
  5327.    BID=BID/QQ
  5328.    If BID>HIBID
  5329.       HIBID=BID : M=H : ZEROBIDS=0 : Goto A2
  5330.    End If 
  5331.    If HIBID=0
  5332.       BIDDERS=1
  5333.    Else 
  5334.       BIDDERS=NONBIDDERS
  5335.    End If 
  5336.    Inc ZEROBIDS
  5337.    If PM1=1
  5338.       If HIBID=0
  5339.          JUNK=1
  5340.       Else 
  5341.          JUNK=-1
  5342.       End If 
  5343.    Else 
  5344.       JUNK=0
  5345.    End If 
  5346.    If ZEROBIDS=NP-BIDDERS+JUNK
  5347.       DPEN[14]
  5348.       Bell 25
  5349.       CLRINFO
  5350.       LOKATE[24,17]
  5351.       CHPRT["   Property goes to "+Pen$(PC(M))+PL$(M)+Pen$(14)]
  5352.       QQUEST[HIBID]
  5353.       LOKATE[24,19]
  5354.       CHPRT["with a bid of "+C$+Pen$(2)+" "+QQ$+"."]
  5355.       Wait 10*DEL
  5356.       DFILL[PPOS(L),M]
  5357.       DPEN[14]
  5358.       Ink 0
  5359.       Bar 182,104 To 560,167
  5360.       PROPOWN(PPOS(L))=M
  5361.       PM(M)=PM(M)-HIBID
  5362.       SEC=M
  5363.       SELL1=PPOS(L)
  5364.       UDATESETS
  5365.       If CURRENT(PPOS(L))=0 and M<>0
  5366.          SOLDMORT
  5367.          UDATESETS
  5368.          UDATEMONEY
  5369.       End If 
  5370.       Goto PROPEND
  5371.    End If 
  5372.    Goto A2
  5373.    PROPEND:
  5374.    MOV=0
  5375.    If M<>0
  5376.       If RENT(PPOS(L),0)=1002
  5377.          RR=1*-(PROPOWN(6)=M)+1*-(PROPOWN(16)=M)+1*-(PROPOWN(26)=M)+1*-(PROPOWN(36)=M)
  5378.          For JJ=6 To 36 Step 10
  5379.             If PROPOWN(JJ)=M and CURRENT(JJ)>0
  5380.                CURRENT(JJ)=RRRENT(RR)
  5381.             End If 
  5382.          Next 
  5383.       End If 
  5384.       If PROPOWN(SET1(PPOS(L)))=M and PROPOWN(SET2(PPOS(L)))=M
  5385.          If CURRENT(PPOS(L))=RENT(PPOS(L),0)
  5386.             CURRENT(PPOS(L))=RENT(PPOS(L),0)*2
  5387.          End If 
  5388.          If CURRENT(SET1(PPOS(L)))>0
  5389.             CURRENT(SET1(PPOS(L)))=RENT(SET1(PPOS(L)),0)*2
  5390.          End If 
  5391.          If CURRENT(SET2(PPOS(L)))>0
  5392.             CURRENT(SET2(PPOS(L)))=RENT(SET2(PPOS(L)),0)*2
  5393.          End If 
  5394.       End If 
  5395.    End If 
  5396.    Clear Key 
  5397. End Proc
  5398.  
  5399. Procedure PROP
  5400.    Rem mortgaged
  5401.    If CURRENT(PPOS(L))=0 and PROPOWN(PPOS(L))<>0
  5402.       LOKATE[23,17]
  5403.       CHPRT[Paper$(14)+Pen$(0)+" MORTGAGED "]
  5404.       DPEN[14] : DPAPER[0]
  5405.       Goto PROPEND
  5406.    End If 
  5407.    Rem Free Parking 
  5408.    If PPOS(L)=21 and PARKING$="y"
  5409.       LOKATE[23,14]
  5410.       DPEN[14]
  5411.       If PARKING=0
  5412.          CHPRT["Sorry, there's no Jackpot."]
  5413.       Else 
  5414.          CHPRT["You win the Free Parking Jackpot!"]
  5415.          LOKATE[23,15]
  5416.          QQUEST[PARKING]
  5417.          CHPRT["      You Collect "+Pen$(2)+C$+QQ$+Pen$(14)+"!"]
  5418.          If PARKING<100
  5419.             LOKATE[23,17]
  5420.             CHPRT["Don't spend it all in one place."]
  5421.          End If 
  5422.          PM(L)=PM(L)+PARKING
  5423.          PARKING=0
  5424.       End If 
  5425.       Goto PROPEND
  5426.    End If 
  5427.    If RD=1
  5428.       Rem Advance token to nearest RR - double rent. 
  5429.       RD=0
  5430.       PM(L)=PM(L)-CURRENT(PPOS(L))
  5431.       M=PROPOWN(PPOS(L))
  5432.       PM(M)=PM(M)+CURRENT(PPOS(L))
  5433.       M=0
  5434.    End If 
  5435.    If PROPOWN(PPOS(L))>0 and PRICE(PPOS(L))>0 and RENT(PPOS(L),0)<999
  5436.       PM(L)=PM(L)-CURRENT(PPOS(L))
  5437.       ALLPROPS=1
  5438.       If PROPOWN(PPOS(L))>0 and(PROPOWN(PPOS(L))=PROPOWN(SET1(PPOS(L)))) and(PROPOWN(PPOS(L))=PROPOWN(SET2(PPOS(L))))
  5439.          ALLPROPS=2
  5440.       End If 
  5441.       PM(PROPOWN(PPOS(L)))=PM(PROPOWN(PPOS(L)))+CURRENT(PPOS(L))
  5442.       M=PROPOWN(PPOS(L))
  5443.       Goto PROPEND
  5444.    End If 
  5445.    If PPOS(L)=5
  5446.       DPEN[14]
  5447.       LOKATE[23,19]
  5448.       If CH$="y"
  5449.          CHPRT["Will you pay "+C$+"200 instead of 10%?(Y/n)"]
  5450.          TENPER=0
  5451.          TENPER=TENPER+PM(L)
  5452.          For JJ=1 To 40
  5453.             If PROPOWN(JJ)=L
  5454.                TENPER=TENPER+PRICE(JJ)
  5455.                TENPER=TENPER+(HOUSE(JJ)*HOUSECOST(JJ))
  5456.             End If 
  5457.          Next JJ
  5458.          ITAXKEY:
  5459.          If COMPPLY(L)=1
  5460.             COMPITAX
  5461.          End If 
  5462.          KEYGET
  5463.          If A$=Chr$(13)
  5464.             A$="y"
  5465.          End If 
  5466.          LOKATE[23,20]
  5467.          CHPRT[A$]
  5468.          If COMPPLY(L)=1
  5469.             Wait 3*DEL
  5470.          End If 
  5471.          A$=Lower$(A$)
  5472.          If A$="y"
  5473.             LOKATE[24,20]
  5474.             CHPRT["Total worth = "+C$+Str$(TENPER)+".   "+"You pay "+C$+"200."]
  5475.             PM(L)=PM(L)-200
  5476.             If PARKING$="y"
  5477.                PARKING=PARKING+200
  5478.             End If 
  5479.             Goto PROPEND
  5480.          End If 
  5481.          If A$<>"n"
  5482.             Goto ITAXKEY
  5483.          End If 
  5484.          LOKATE[24,20]
  5485.          JUNK=TENPER
  5486.          TENPER=(TENPER/10)
  5487.          CHPRT["Total worth = "+C$+Str$(JUNK)+".   "+"You pay "+C$+Str$(TENPER)+"."]
  5488.          PM(L)=PM(L)-TENPER : TENPER=0 : JUNK=0
  5489.       Else 
  5490.          LOKATE[23,20]
  5491.          QQUEST[200]
  5492.          CHPRT["You pay "+C$+QQ$+"."]
  5493.          PM(L)=PM(L)-200
  5494.          TENPER=200
  5495.       End If 
  5496.       If PARKING$="y"
  5497.          PARKING=PARKING+TENPER
  5498.       End If 
  5499.       Goto PROPEND
  5500.    End If 
  5501.    Rem railroads
  5502.    If PROPOWN(PPOS(L))>0 and RENT(PPOS(L),0)=1002
  5503.       PM(L)=PM(L)-CURRENT(PPOS(L))
  5504.       M=PROPOWN(PPOS(L))
  5505.       PM(M)=PM(M)+CURRENT(PPOS(L))
  5506.       Goto PROPEND
  5507.    End If 
  5508.    Rem utilities
  5509.    If PROPOWN(PPOS(L))>0 and((PPOS(L)=13) or(PPOS(L)=29))
  5510.       If PROPOWN(PPOS(L))=L
  5511.          Goto PROPEND
  5512.       End If 
  5513.       UTIMES=4
  5514.       If PROPOWN(13)=PROPOWN(29)
  5515.          UTIMES=10
  5516.       End If 
  5517.       If UD=1
  5518.          UD=0
  5519.          UTIMES=10
  5520.       End If 
  5521.       LOKATE[23,17]
  5522.       CHPRT["Amount shown on dice is "+Str$(D1+D2)+"."]
  5523.       LOKATE[23,19]
  5524.       UT=(D1+D2)*UTIMES
  5525.       QQUEST[UT]
  5526.       CHPRT["You owe "+C$+QQ$+"."]
  5527.       PM(L)=PM(L)-UT
  5528.       M=PROPOWN(PPOS(L))
  5529.       PM(M)=PM(M)+UT
  5530.       If COMPPLY(L)=1
  5531.          Wait 6*DEL
  5532.       End If 
  5533.       Goto PROPEND
  5534.    End If 
  5535.    If PROPOWN(PPOS(L))=0 and PRICE(PPOS(L))>0
  5536.       LOKATE[23,17]
  5537.       BUY:
  5538.       DPEN[14]
  5539.       CHPRT["Do you wish to buy it? (Y/n) "]
  5540.       Clear Key 
  5541.       AKEY:
  5542.       If COMPPLY(L)=1
  5543.          COMPBUY
  5544.       End If 
  5545.       KEYGET
  5546.       If A$=Chr$(13)
  5547.          A$="y"
  5548.       End If 
  5549.       LOKATE[23,18]
  5550.       CHPRT[A$]
  5551.       If COMPPLY(L)=1
  5552.          Wait 3*DEL
  5553.       End If 
  5554.       A$=Lower$(A$)
  5555.       If A$="y"
  5556.          PROPOWN(PPOS(L))=L
  5557.          PM(L)=PM(L)-PRICE(PPOS(L))
  5558.          M=L
  5559.          Wait 5*DEL
  5560.          LOKATE[23,17]
  5561.          CHPRT["                                "]
  5562.          LOKATE[23,18]
  5563.          CHPRT["                                "]
  5564.          DFILL[PPOS(L),L]
  5565.          Goto PROPEND
  5566.       End If 
  5567.       AUCTION:
  5568.       If PA$="n"
  5569.          Goto PROPEND
  5570.       End If 
  5571.       COMEONALONG
  5572.    Else 
  5573.       Goto PROPEND
  5574.    End If 
  5575.    PROPEND:
  5576.    MOV=0
  5577.    UDATESETS
  5578.    UDATEMONEY
  5579.    PRTINFO[PPOS(L)]
  5580. End Proc
  5581.  
  5582. Procedure SHUFFLECHIP
  5583.    For CNJ=1 To 12
  5584.       CNX=Rnd(11)+1
  5585.       Swap CHIPNAME$(CNJ),CHIPNAME$(CNX)
  5586.    Next 
  5587. End Proc
  5588.  
  5589. Procedure TWORTH
  5590.    WORTH=0
  5591.    WORTH=WORTH+PM(L)
  5592.    For JJ=1 To 40
  5593.       If PROPOWN(JJ)=L
  5594.          If CURRENT(JJ)=0
  5595.             WORTH=WORTH+(PRICE(JJ)/2)
  5596.          Else 
  5597.             WORTH=WORTH+PRICE(JJ)
  5598.          End If 
  5599.          If QS$="y" and HOUSE(JJ)=5
  5600.             WORTH=WORTH+((HOUSE(JJ)-1)*HOUSECOST(JJ))
  5601.          Else 
  5602.             WORTH=WORTH+(HOUSE(JJ)*HOUSECOST(JJ))
  5603.          End If 
  5604.       End If 
  5605.    Next JJ
  5606. End Proc
  5607.  
  5608. Procedure UDATEMENUS
  5609.    Menu Del 
  5610.    Screen FCR
  5611.    Paper 0
  5612.    Pen 14
  5613.    
  5614.    Menu$(1)="Project  "
  5615.    Menu$(2)="Property   "
  5616.    Menu$(3)="Buy     "
  5617.    Menu$(4)="Sell    "
  5618.    Menu$(5)="Trade   "
  5619.    Menu$(6)="ShowProperties "
  5620.    
  5621.    Menu$(1,1)="LOAD GAME   "
  5622.    Menu$(1,2)="SAVE GAME   "
  5623.    Menu$(1,3)="            ","            "
  5624.    Menu$(1,4)="ABOUT       "
  5625.    If FCR=0
  5626.       Menu$(1,5)="Deluxe GFX  "
  5627.    Else 
  5628.       Menu$(1,5)="Classic GFX "
  5629.    End If 
  5630.    Menu$(1,6)="            ","            "
  5631.    Menu$(1,7)="KILL PLAYER "
  5632.    Menu$(1,8)="            ","            "
  5633.    Menu$(1,9)="QUIT ALL    "
  5634.    
  5635.    Menu$(2,1)="BUY HOUSE  "
  5636.    Menu$(2,2)="SELL HOUSE "
  5637.    Menu$(2,3)="           ","           "
  5638.    Menu$(2,4)="MORTGAGE   "
  5639.    Menu$(2,5)="LIFT MORT. "
  5640.    Menu$(2,6)="           ","           "
  5641.    Menu$(2,7)="SHOW DEED  "
  5642.    
  5643.    Menu Del(3)
  5644.    Menu$(3)="Buy     "
  5645.    For J=1 To NP
  5646.       Pen(PC(J)) : Menu$(3,J)=Left$(("FROM "+PL$(J)+"               "),19)
  5647.    Next J
  5648.    Paper 0
  5649.    Pen 14
  5650.    
  5651.    Menu Del(4)
  5652.    Menu$(4)="Sell    "
  5653.    For J=1 To NP
  5654.       Pen(PC(J)) : Menu$(4,J)=Left$(("TO "+PL$(J)+"                 "),17)
  5655.    Next J
  5656.    Pen 14
  5657.    Menu$(4,NP+1)="                 ","                 "
  5658.    Paper 5
  5659.    Pen 0
  5660.    Menu$(4,NP+2)="OUT OF JAIL - C  "
  5661.    Paper 9
  5662.    Menu$(4,NP+3)="OUT OF JAIL - CC "
  5663.    Paper 0
  5664.    Pen 14
  5665.    
  5666.    Menu Del(5)
  5667.    Menu$(5)="Trade   "
  5668.    For J=1 To NP
  5669.       Pen(PC(J)) : Menu$(5,J)=Left$(("WITH "+PL$(J)+"               "),19)
  5670.    Next J
  5671.    Paper 0
  5672.    Pen 14
  5673.    
  5674.    Menu Del(6)
  5675.    Menu$(6)="ShowProperties "
  5676.    For J=0 To NP
  5677.       Pen(PC(J)) : Menu$(6,J+1)=Left$(("OWNED BY "+PL$(J)+"               "),23)
  5678.    Next J
  5679.    Pen 14
  5680.    Menu$(6,NP+2)="ALL PLAYERS            "
  5681.    
  5682.    If PM$="y"
  5683.       Menu$(2,8)="           ","           "
  5684.       Menu$(2,9)="GET LOAN   "
  5685.    End If 
  5686.    
  5687.    Menu Calc 
  5688.    Screen 0
  5689. End Proc
  5690.  
  5691. Procedure DFILL[DFPOS,DFPLAY]
  5692.    Screen 2
  5693.    JUNK=-50+(50*BVD(DFPLAY))
  5694.    Ink PCOLOR(DFPOS)
  5695.    If DFPOS=13
  5696.       Ink 9
  5697.    End If 
  5698.    Paint DFX(DFPOS),DFY(DFPOS)+JUNK,1
  5699.    Ink 14
  5700.    Screen 0
  5701. End Proc
  5702.  
  5703. Procedure UFILL[DFPOS,DFPLAY]
  5704.    Screen 2
  5705.    JUNK=-50+(50*BVD(DFPLAY))
  5706.    Ink 11
  5707.    Paint DFX(DFPOS),DFY(DFPOS)+JUNK,1
  5708.    Ink 14
  5709.    Screen 0
  5710. End Proc
  5711.  
  5712. Procedure _COPYRIGHT[YDISPLAY]
  5713.    Auto View Off 
  5714.    Unpack 10 To 7
  5715.    For Y=2 To Screen Height/2 Step 2
  5716.       Screen Display 7,,YDISPLAY+Screen Height/2-Y,,Y*2
  5717.       Screen Offset 7,,Screen Height/2-Y
  5718.       View 
  5719.       Wait Vbl 
  5720.    Next 
  5721.    Screen Copy 7 To 1
  5722.    Screen Close 7
  5723.    Auto View On 
  5724. End Proc
  5725.  
  5726. Procedure CHPRT[CHP$]
  5727.    SS$=""
  5728.    JUNK=47-(Len(CHP$))
  5729.    JUNK=JUNK/2
  5730.    If JUNK<1
  5731.       JUNK=0
  5732.    End If 
  5733.    JUNK2=JUNK+5
  5734.    For X=1 To JUNK
  5735.       SS$=SS$+Cright$
  5736.    Next X
  5737.    Print SS$;CHP$;
  5738.    Screen 2
  5739.    For X=1 To 5
  5740.       SS$=SS$+Cright$
  5741.    Next X
  5742.    Print SS$;CHP$
  5743.    Screen 0
  5744. End Proc
  5745.  
  5746. Procedure _TEXTHIGHLIGHT[_XPOS,_YPOS,_TEXT$,_COLOUR,_HIGHLIGHT_COLOUR]
  5747.    Gr Writing 0
  5748.    If Len(C$)>1
  5749.       _XPOS=_XPOS-2
  5750.    End If 
  5751.    _XPOS=_XPOS*8 : Add _XPOS,1
  5752.    _YPOS=_YPOS*8 : Add _YPOS,7
  5753.    Ink _HIGHLIGHT_COLOUR,0
  5754.    For R=1 To 3
  5755.       If R>1 and R<3
  5756.          Text _XPOS-2+R,_YPOS-1,_TEXT$
  5757.       End If 
  5758.       Text _XPOS-2+R,_YPOS,_TEXT$
  5759.       If R>1 and R<3
  5760.          Text _XPOS-2+R,_YPOS+1,_TEXT$
  5761.       End If 
  5762.    Next R
  5763.    Ink _COLOUR
  5764.    Text _XPOS,_YPOS,_TEXT$
  5765.    Ink 0
  5766. End Proc
  5767.  
  5768. Procedure DICEROLL
  5769.    For _X=1 To 7
  5770.       _D1=Rnd(5)+1
  5771.       _D2=Rnd(5)+1
  5772.       Paste Bob 1,1,_D1+19
  5773.       Paste Bob 20,30,_D2+19
  5774.       Screen 2
  5775.       Paste Bob 472,30,_D1+97
  5776.       Paste Bob 530,30,_D2+103
  5777.       Screen 0
  5778.       Play %100,40,0
  5779.       Play %100,50,0
  5780.       Wait 1+DEL/7
  5781.       Play Off 
  5782.       Wait 1+DEL/4
  5783.    Next _X
  5784. End Proc
  5785.  
  5786. Procedure HIGHLIGHTTURN
  5787.    _TEXTHIGHLIGHT[26,4+L,PL$(L),PC(L),14]
  5788.    Screen 2
  5789.    JUNK1=L
  5790.    For JJ=1 To NP
  5791.       If JJ=JUNK1
  5792.          Ink 4
  5793.       Else 
  5794.          Ink 11
  5795.       End If 
  5796.       JUNK=-48+(50*BVD(JJ))
  5797.       Box 4,JUNK To 51,JUNK+23
  5798.    Next JJ
  5799.    Screen 0
  5800.    JUNK=0
  5801.    Ink 14
  5802. End Proc
  5803.  
  5804. UNHIGHLIGHT:
  5805. _TEXTHIGHLIGHT[26,4+L,PL$(L)+" ",PC(L),0]
  5806. Return 
  5807.  
  5808. WARNING:
  5809. CLRINFO
  5810. LOKATE[23,12]
  5811. CHPRT[Paper$(14)+Pen$(1)+" ATTENTION!!! "]
  5812. DPAPER[0] : DPEN[14]
  5813. LOKATE[23,14]
  5814. CHPRT[Pen$(PC(L))+PL$(L)]
  5815. DPEN[14]
  5816. LOKATE[23,16]
  5817. CHPRT["You are out of money!"]
  5818. LOKATE[23,18]
  5819. CHPRT["If you roll the dice before you raise"]
  5820. LOKATE[23,19]
  5821. CHPRT["enough money you will be removed"]
  5822. LOKATE[23,20]
  5823. CHPRT["from the game!"]
  5824. Flash 12,"(f00,1)(0f0,1)(00f,1)(000,1)(fff,1)"
  5825. Screen 2
  5826. Flash 12,"(f00,1)(0f0,1)(00f,1)(000,1)(fff,1)"
  5827. Screen 0
  5828. For J=1 To 20
  5829.    Wait Vbl 
  5830.    Bell 
  5831. Next J
  5832. Wait 10*DEL
  5833. Flash Off 
  5834. Colour 12,$BFF
  5835. Screen 2
  5836. Flash Off 
  5837. Colour 12,$BFF
  5838. Screen 0
  5839. Clear Key 
  5840. Return 
  5841.  
  5842. CLICK:
  5843. While Mouse Click<>1 : Wend 
  5844. CLRINFO
  5845. X=Mouse Zone
  5846. If DL$="n"
  5847.    If X<>47 and X<>43 and X<>44
  5848.       Sam Play 1
  5849.    End If 
  5850. Else 
  5851.    If X<>47 and X<>41 and X<>42 and X<>44 and X<>45
  5852.       Sam Play 1
  5853.    End If 
  5854. End If 
  5855. If DL$="n"
  5856.    If X=43
  5857.       OK
  5858.    End If 
  5859.    If X=44
  5860.       CANCEL
  5861.    End If 
  5862. Else 
  5863.    If X=41 or X=44
  5864.       OK
  5865.    End If 
  5866.    If X=42 or X=45
  5867.       CANCEL
  5868.    End If 
  5869. End If 
  5870. Return 
  5871.  
  5872. COMPROLL:
  5873. CR1:
  5874. Wait 3*DEL
  5875. UDATESETS
  5876. CHOUSE=0 : X1=0 : NM=0
  5877. If PM(L)<0 and GOOJFC=L and SF$="y"
  5878.    PM(L)=PM(L)+25
  5879.    GOOJFC=0
  5880.    Screen 2
  5881.    Ink 11
  5882.    Paint 180,(-50+(50*BVD(L)+17)),1
  5883.    Ink 14
  5884.    Screen 0
  5885. End If 
  5886. If PM(L)<0 and GOOJFCC=L and SF$="y"
  5887.    PM(L)=PM(L)+25
  5888.    GOOJFCC=0
  5889.    Screen 2
  5890.    Ink 11
  5891.    Paint 180,(-50+(50*BVD(L)+23)),1
  5892.    Ink 14
  5893.    Screen 0
  5894. End If 
  5895. If PM(L)<0
  5896.    If PM$="y"
  5897.       Gosub COMPLOAN
  5898.    End If 
  5899.    NM=0
  5900.    For X=40 To 1 Step -1
  5901.       If PROPOWN(X)=L and HOUSE(X)>0
  5902.          Inc NM : M(NM)=X
  5903.       End If 
  5904.    Next X
  5905.    If PM(L)<0 and NM>0
  5906.       CLRINFO
  5907.       Gosub COMPSELLHOUSES
  5908.       Goto CR1
  5909.    End If 
  5910.    NM=0
  5911.    If PM(L)<0
  5912.       Gosub COMPMORT
  5913.       UDATESETS
  5914.    End If 
  5915.    If PM(L)<0
  5916.       Goto CROLLEND
  5917.    End If 
  5918. End If 
  5919. NM=0
  5920. For X=1 To 40
  5921.    If PROPOWN(X)=L and CURRENT(X)=0
  5922.       Inc NM
  5923.       M(NM)=X
  5924.    End If 
  5925. Next X
  5926. TENPER=PRICE(M(1))
  5927. TENPER=(TENPER/2)
  5928. TENPER=TENPER+(PRICE(M(1))/10)
  5929. If NM<>0 and PM(L)>TENPER+150
  5930.    CLRINFO
  5931.    Gosub LIFTMORT
  5932. End If 
  5933. CBH:
  5934. For J=0 To 30 Step 10
  5935.    X1=J+2
  5936.    CBH1:
  5937.    X2=SET1(X1) : X3=SET2(X1)
  5938.    If LH$="y" and HOTELSLEFT=0 and HOUSESLEFT=0
  5939.       Goto CBH3
  5940.    End If 
  5941.    If HOUSECOST(X1)=>PM(L)
  5942.       Goto CBH3
  5943.    End If 
  5944.    If PP(L)=3
  5945.       JUNK=200
  5946.       For X=1 To 40
  5947.          If RENT(X,0)<997
  5948.             If PROPOWN(X)>0 and PROPOWN(X)<>L and CURRENT(X)>JUNK
  5949.                JUNK=CURRENT(X)+100
  5950.             End If 
  5951.          End If 
  5952.       Next X
  5953.       If(HOUSECOST(X1)+JUNK)>PM(L)
  5954.          Goto CBH2
  5955.       End If 
  5956.    Else 
  5957.       If(HOUSECOST(X1)+200)>PM(L)
  5958.          Goto CBH2
  5959.       End If 
  5960.    End If 
  5961.    If PROPOWN(X1)<>L or PROPOWN(X2)<>L or PROPOWN(X3)<>L
  5962.       Goto CBH2
  5963.    End If 
  5964.    If CURRENT(X1)<=RENT(X1,0) or CURRENT(X2)<=RENT(X2,0) or CURRENT(X3)<=RENT(X3,0)
  5965.       Goto CBH2
  5966.    End If 
  5967.    If HOUSE(X1)=H2 and HOUSE(X2)=H2 and HOUSE(X3)=H2
  5968.       Goto CBH2
  5969.    End If 
  5970.    If LH$="y"
  5971.       If HOTELSLEFT=0 and HOUSE(X1)>H1-1 and HOUSE(X2)>H1-1 and HOUSE(X3)>H1-1
  5972.          Goto CBH2
  5973.       End If 
  5974.       If HOUSESLEFT=0 and(HOUSE(X1)<H1 or HOUSE(X2)<H1 or HOUSE(X3)<H1)
  5975.          Goto CBH2
  5976.       End If 
  5977.       If PP(L)=3
  5978.          If HOUSE(X1)=H1 and HOUSE(X2)=H1 and HOUSE(X3)=H1
  5979.             Goto CBH2
  5980.          End If 
  5981.       End If 
  5982.    End If 
  5983.    CLRINFO
  5984.    Gosub BUYHOUSE
  5985.    CBH2:
  5986.    If X1=J+2
  5987.       X1=J+10
  5988.       Goto CBH1
  5989.    End If 
  5990. Next J
  5991. CBH3:
  5992. Wait DEL
  5993. CROLLEND:
  5994. UDATESETS
  5995. Clear Key 
  5996. Put Key Chr$(13)
  5997. JUNK=0 : JUNK2=0
  5998. Return 
  5999.  
  6000. COMPSELLHOUSES:
  6001. NM=0
  6002. For X=1 To 3 : M(X)=0 : Next X
  6003. For X=40 To 1 Step -1
  6004.    If PROPOWN(X)=L and HOUSE(X)>0
  6005.       Inc NM : M(NM)=X
  6006.    End If 
  6007. Next X
  6008. If NM=0
  6009.    Return 
  6010. End If 
  6011. If M(1)=40 or M(1)=4
  6012.    NM=2
  6013. Else 
  6014.    NM=3
  6015. End If 
  6016. If HOUSE(M(1))<HOUSE(M(3)) Then Swap M(1),M(3)
  6017. If HOUSE(M(1))<HOUSE(M(2)) Then Swap M(1),M(2)
  6018. If HOUSE(M(2))<HOUSE(M(3)) Then Swap M(2),M(3)
  6019. JUNK=NM
  6020. For J=JUNK To 2 Step -1
  6021.    If M(J)=0
  6022.       Dec NM
  6023.    End If 
  6024. Next J
  6025. Gosub SELLHOUSE
  6026. Return 
  6027.  
  6028. COMPLOAN:
  6029. NM=0
  6030. For X=1 To 40
  6031.    M(X)=0
  6032. Next X
  6033. For X=40 To 10 Step -10
  6034.    If PROPOWN(X)=L and CURRENT(X)>0 and LOAN(X)=0
  6035.       If CURRENT(X)>RENT(X,0)
  6036.          Inc NM : M(NM)=X
  6037.       End If 
  6038.    End If 
  6039.    If PROPOWN(X-8)=L and CURRENT(X-8)>0 and LOAN(X-8)=0
  6040.       If CURRENT(X-8)>RENT(X-8,0)
  6041.          Inc NM : M(NM)=X-8
  6042.       End If 
  6043.    End If 
  6044. Next X
  6045. If CURRENT(6)>0 and CURRENT(16)>0 and CURRENT(26)>0 and CURRENT(36)>0
  6046.    If PROPOWN(6)=L and LOAN(6)=0
  6047.       If CURRENT(6)=200
  6048.          Inc NM : M(NM)=6
  6049.       End If 
  6050.    End If 
  6051. End If 
  6052. If PROPOWN(13)=L and CURRENT(13)>0 and LOAN(13)=0 and CURRENT(29)>0
  6053.    If PROPOWN(29)=L
  6054.       Inc NM : M(NM)=13
  6055.    End If 
  6056. End If 
  6057. If NM=0
  6058.    Return 
  6059. End If 
  6060. Gosub LOAN
  6061. Return 
  6062.  
  6063. COMPMORT:
  6064. NM=0
  6065. If PP(L)=3
  6066.    Gosub COMPSORT
  6067.    NM=CSS
  6068.    For X=1 To CSS
  6069.       M(X)=CS(X)
  6070.    Next X
  6071. Else 
  6072.    For X=40 To 1 Step -1
  6073.       If PROPOWN(X)=L and LOAN(X)=0
  6074.          If CURRENT(X)<>0 and HOUSE(X)=0
  6075.             Inc NM
  6076.             M(NM)=X
  6077.          End If 
  6078.       End If 
  6079.    Next X
  6080. End If 
  6081. If NM=0
  6082.    Return 
  6083. End If 
  6084. Gosub MORTGAGE
  6085. Return 
  6086.  
  6087. COMPSORT:
  6088. CSS=0
  6089. For X=1 To 40
  6090.    If PROPOWN(X)=L and CURRENT(X)<>0
  6091.       Inc CSS : CS(CSS)=X
  6092.    End If 
  6093. Next X
  6094. If CSS=0 or CSS=1
  6095.    Return 
  6096. End If 
  6097. For X=1 To CSS
  6098.    JUNK=0 : JUNK2=0
  6099.    If RENT(CS(X),0)>999
  6100.       If RENT(CS(X),0)=1005
  6101.          If PROPOWN(SET1(CS(X)))=L
  6102.             JUNK=10
  6103.          Else 
  6104.             JUNK=4
  6105.          End If 
  6106.          CS2(CS(X))=7*JUNK-75
  6107.       Else 
  6108.          For Y=6 To 36 Step 10
  6109.             If PROPOWN(Y)=L
  6110.                Inc JUNK
  6111.             End If 
  6112.          Next Y
  6113.          JUNK=JUNK-1
  6114.          CS2(CS(X))=(2^JUNK*25)-100
  6115.       End If 
  6116.    Else 
  6117.       JUNK2=CS(X)
  6118.       JUNK=PV1#(JUNK2)*CURRENT(JUNK2)-(PRICE(JUNK2)/2)
  6119.       CS2(CS(X))=JUNK
  6120.    End If 
  6121. Next X
  6122. JUNK=0
  6123.  
  6124. For X=1 To CSS-1
  6125.    For Y=X+1 To CSS
  6126.       If CS2(CS(X))>CS2(CS(Y))
  6127.          Swap CS(X),CS(Y)
  6128.       End If 
  6129.    Next Y
  6130. Next X
  6131.  
  6132. Return 
  6133.  
  6134. HOUSEBOB:
  6135. HOFF=((X-1)/10)+1
  6136. If HOFF=1
  6137.    HX=BX(X)-4 : HY=BY(X)-16 : SHAP=HOUSE(X)+9
  6138.    DSX=SX(X)-16 : DSY=SY(X)-12 : DSHAP=HOUSE(X)+71
  6139.    DTX=DSX+31 : DTY=DSY+4
  6140. End If 
  6141. If HOFF=2
  6142.    HX=BX(X)+50 : HY=BY(X)-5 : SHAP=HOUSE(X)+14
  6143.    DSX=SX(X)+18 : DSY=SY(X)-7 : DSHAP=HOUSE(X)+76
  6144.    DTX=DSX+8 : DTY=DSY+15
  6145. End If 
  6146. If HOFF=3
  6147.    HX=BX(X)-40 : HY=BY(X)+13 : SHAP=HOUSE(X)+9
  6148.    DSX=SX(X)-16 : DSY=SY(X)+6 : DSHAP=HOUSE(X)+71
  6149.    DTX=DSX+31 : DTY=DSY+4
  6150. End If 
  6151. If HOFF=4
  6152.    HX=BX(X)-62 : HY=BY(X)-5 : SHAP=HOUSE(X)+14
  6153.    DSX=SX(X)-26 : DSY=SY(X)-7 : DSHAP=HOUSE(X)+76
  6154.    DTX=DSX+8 : DTY=DSY+15
  6155. End If 
  6156. If X=40
  6157.    HY=HY-1
  6158. End If 
  6159. If X=38
  6160.    HY=HY+2
  6161. End If 
  6162. Return 
  6163.  
  6164. GAMEEND:
  6165. Show On 
  6166. Menu Off 
  6167. Wait Vbl 
  6168. MOST=1
  6169. Gosub HOUSEBOB
  6170. For X=1 To NP
  6171.    FS(X)=X
  6172. Next X
  6173. If NP>1
  6174.    For X=1 To NP
  6175.       Y=Rnd(NP-1)+1
  6176.       Swap FS(X),FS(Y)
  6177.    Next X
  6178.    For X=1 To NP
  6179.       L=X
  6180.       TWORTH
  6181.       PM(L)=WORTH
  6182.    Next X
  6183.    For X=1 To NP-1
  6184.       For Y=X+1 To NP
  6185.          If PM(FS(X))<PM(FS(Y))
  6186.             Swap FS(X),FS(Y)
  6187.          End If 
  6188.       Next Y
  6189.    Next X
  6190. Else 
  6191.    L=1
  6192.    TWORTH
  6193.    PM(1)=WORTH
  6194. End If 
  6195. CLRINFO
  6196. LOKATE[23,12]
  6197. DPEN[5]
  6198. CHPRT["Final Standings"]
  6199. UDATESETS
  6200. For J=1 To NP
  6201.    LOKATE[23,12+J+1]
  6202.    QQUEST[PM(FS(J))]
  6203.    CHPRT["   "+Pen$(PC(FS(J)))+Left$(PL$(FS(J))+S$,13)+Pen$(14)+" --- "+Pen$(2)+C$+QQ$+Pen$(14)]
  6204. Next J
  6205. MOST=FS(1)
  6206. For X=2 To NP
  6207.    Y=FS(X)
  6208.    Bob Y,700,300,PLPC(Y)
  6209.    Bob Y+4,700,300,DLPC(Y)
  6210.    Wait Vbl 
  6211.    Bob Off FS(Y)
  6212.    Bob Off FS(Y)+4
  6213.    Wait Vbl 
  6214.    UDATEBOBS
  6215.    Wait Vbl 
  6216. Next X
  6217. L=MOST
  6218. HIGHLIGHTTURN
  6219. LOKATE[23,19]
  6220. CHPRT["     "+Pen$(PC(MOST))+PL$(MOST)+Pen$(14)+" is the winner!   "]
  6221. LOKATE[23,20]
  6222. DPEN[14]
  6223. CHPRT["Do you want to play again?  (y/N)    "]
  6224. Wait Vbl 
  6225. UDATEBOBS
  6226. If PPOS(MOST)=41
  6227.    PPOS(MOST)=11
  6228. End If 
  6229. K=PPOS(MOST)
  6230. MZ=0
  6231. WINLOOP:
  6232. MC=0 : MZ=0 : A$=""
  6233. A$=Inkey$
  6234. While A$="" and MC<>1
  6235.    Inc K
  6236.    If K>40
  6237.       K=K-40
  6238.    End If 
  6239.    If K>21
  6240.       Bob MOST,BX(K),BY(K),Hrev(PLPC(MOST))
  6241.       Screen 2
  6242.       Bob MOST+4,SX(K),SY(K),Hrev(DLPC(MOST))
  6243.       Screen 0
  6244.       Wait Vbl 
  6245.    Else 
  6246.       Bob MOST,BX(K),BY(K),PLPC(MOST)
  6247.       Screen 2
  6248.       Bob MOST+4,SX(K),SY(K),DLPC(MOST)
  6249.       Screen 0
  6250.       Wait Vbl 
  6251.    End If 
  6252.    Play %100,90,2
  6253.    Play Off 
  6254.    Screen FCR
  6255.    For JUNK=1 To 15
  6256.       MC=Mouse Click
  6257.       If MC=1 Then JUNK=15
  6258.       Wait Vbl 
  6259.    Next JUNK
  6260.    Screen 0
  6261.    A$=Inkey$
  6262. Wend 
  6263. If MC=1
  6264.    MZ=Mouse Zone
  6265.    If DL$="n"
  6266.       If MZ=43
  6267.          OK
  6268.          A$="y"
  6269.       End If 
  6270.       If MZ=44
  6271.          CANCEL
  6272.          A$="n"
  6273.       End If 
  6274.    Else 
  6275.       If MZ=41 or MZ=44
  6276.          OK
  6277.          A$="y"
  6278.       End If 
  6279.       If MZ=42 or MZ=45
  6280.          CANCEL
  6281.          A$="n"
  6282.       End If 
  6283.    End If 
  6284. End If 
  6285. If A$=Chr$(13)
  6286.    A$="n"
  6287. End If 
  6288. A$=Lower$(A$)
  6289. If A$="n"
  6290.    For X=1 To 109
  6291.       Bob 1,600,600,X
  6292.    Next X
  6293.    Wait Vbl 
  6294.    Bob Off 
  6295.    Wait Vbl 
  6296.    Screen Close 3
  6297.    Screen Close 4
  6298.    Screen Close 1
  6299.    Screen FCR
  6300.    Screen To Front FCR
  6301.    Wait Vbl 
  6302.    If FCR=0
  6303.       Screen Close 2
  6304.    Else 
  6305.       Screen Close 0
  6306.    End If 
  6307.    DELAY=5
  6308.    Fade DELAY
  6309.    Wait 20*DELAY
  6310.    Screen Close FCR
  6311.    _CLOSERTOOLS
  6312.    End 
  6313. End If 
  6314. If A$<>"y"
  6315.    Goto WINLOOP
  6316. End If 
  6317. UDATESETS
  6318. For X=1 To 109
  6319.    Bob 1,500,500,X
  6320. Next X
  6321.  
  6322. Wait Vbl 
  6323. Bob Off 
  6324. For X=1 To 40
  6325.    HOUSE(X)=0
  6326.    If PRICE(X)>0
  6327.       UFILL[X,PROPOWN(X)]
  6328.    End If 
  6329.    PROPOWN(X)=0
  6330.    CURRENT(X)=RENT(X,0)
  6331. Next X
  6332. Menu Del 
  6333. Pop 
  6334. Restore 
  6335. Goto R2
  6336. End 
  6337.  
  6338. USA:
  6339. Restore PROPDATA
  6340. For J=1 To 41
  6341.    Read PROP$(J),JUNK,JUNK,JUNK,JUNK,JUNK,JUNK,JUNK,JUNK,JUNK,JUNK,JUNK,JUNK,JUNK
  6342. Next J
  6343. Restore CCDATA
  6344. For J=1 To 16
  6345.    Read CCHEST1$(J),CCHEST2$(J),CCHEST3$(J),CCMON(J),CCSPEC(J)
  6346. Next J
  6347. For J=1 To 16
  6348.    Read CHANCE1$(J),CHANCE2$(J),CHANCE3$(J),CHANCE4$(J)
  6349.    Read CMON(J),CSPEC(J)
  6350. Next J
  6351. JUNK=0 : RENT(39,0)=75
  6352. Return 
  6353.  
  6354. BRIT:
  6355. Restore BRITISH_VERSION_DATA
  6356. For J=1 To 41
  6357.    Read PROP$(J)
  6358. Next J
  6359. If CH1=0
  6360.    CHANCE1$(12)="ADVANCE TO PALL MALL"
  6361.    CHANCE1$(13)="GO TO KING'S CROSS STATION"
  6362.    CHANCE1$(15)="ADVANCE TO MAYFAIR" : CHANCE3$(15)=""
  6363.    CHANCE1$(16)="ADVANCE TO TRAFALGAR SQUARE"
  6364.    CCHEST1$(7)="BANK ERROR IN YOUR FAVOUR"
  6365.    CHANCE1$(4)="Advance token to the nearest Railway and pay"
  6366.    CHANCE3$(4)="otherwise entitled. - If Railway is unowned,"
  6367.    CHANCE1$(5)=CHANCE1$(4)
  6368.    CHANCE3$(5)=CHANCE3$(4)
  6369. End If 
  6370. RENT(39,0)=100
  6371. Return 
  6372.  
  6373. AUS:
  6374. Restore AUSTRALIAN_VERSION_DATA
  6375. For J=1 To 41
  6376.    Read PROP$(J)
  6377. Next J
  6378. If CH1=0
  6379.    CHANCE1$(12)="ADVANCE TO WILLIAM STREET"
  6380.    CHANCE1$(13)="GO TO PERTH STATION"
  6381.    CHANCE1$(15)="ADVANCE TO KING'S AVENUE" : CHANCE3$(15)=""
  6382.    CHANCE1$(16)="ADVANCE TO WICKHAM TERRACE"
  6383.    CCHEST1$(7)="BANK ERROR IN YOUR FAVOUR"
  6384.    CHANCE1$(4)="Advance token to the nearest Railway and pay"
  6385.    CHANCE3$(4)="otherwise entitled. - If Railway is unowned,"
  6386.    CHANCE1$(5)=CHANCE1$(4)
  6387.    CHANCE3$(5)=CHANCE3$(4)
  6388. End If 
  6389. RENT(39,0)=100
  6390. Return 
  6391.  
  6392. FR:
  6393. Restore FRENCH_VERSION_DATA
  6394. For J=1 To 41
  6395.    Read PROP$(J)
  6396. Next J
  6397. If CH1=0
  6398.    CHANCE1$(12)="ADVANCE TO BOUL DE LA R�PUBLIQUE"
  6399.    CHANCE1$(13)="GO TO GARE MONTPARNASSE"
  6400.    CHANCE1$(15)="ADVANCE TO RUE DE LA PAIX" : CHANCE3$(15)=""
  6401.    CHANCE1$(16)="ADVANCE TO AVENUE HENRI-MARTIN"
  6402. End If 
  6403. RENT(39,0)=100
  6404. Return 
  6405.  
  6406. ITA:
  6407. Restore ITALIAN_VERSION_DATA
  6408. For J=1 To 41
  6409.    Read PROP$(J)
  6410. Next J
  6411. If CH1=0
  6412.    CHANCE1$(12)="ADVANCE TO VIA ACCADEMIA"
  6413.    CHANCE1$(13)="GO TO STAZIONE SUD"
  6414.    CHANCE1$(15)="ADVANCE TO PARCO DELLA VITTORIA" : CHANCE3$(15)=""
  6415.    CHANCE1$(16)="ADVANCE TO LARGO COLOMBO"
  6416. End If 
  6417. RENT(39,0)=100
  6418. Return 
  6419.  
  6420. GER:
  6421. Restore GERMAN_VERSION_DATA
  6422. For J=1 To 41
  6423.    Read PROP$(J)
  6424. Next J
  6425. If CH1=0
  6426.    CHANCE1$(12)="ADVANCE TO SEESTRA�E"
  6427.    CHANCE1$(13)="GO TO S�DBAHNHOF"
  6428.    CHANCE1$(15)="ADVANCE TO SCHLO�ALLEE" : CHANCE3$(15)=""
  6429.    CHANCE1$(16)="ADVANCE TO OPERNPLATZ"
  6430. End If 
  6431. RENT(39,0)=100
  6432. Return 
  6433.  
  6434. SWE:
  6435. Restore SWEDISH_VERSION_DATA
  6436. For J=1 To 41
  6437.    Read PROP$(J)
  6438. Next J
  6439. If CH1=0
  6440.    CHANCE1$(12)="ADVANCE TO S:T ERIKSGATAN"
  6441.    CHANCE1$(13)="GO TO S�DRA STATION"
  6442.    CHANCE1$(15)="ADVANCE TO NORRMALMSTORG" : CHANCE3$(15)=""
  6443.    CHANCE1$(16)="ADVANCE TO HAMNGATAN"
  6444. End If 
  6445. RENT(39,0)=100
  6446. Return 
  6447.  
  6448. SW:
  6449. Restore STARWARS_VERSION_DATA
  6450. For J=1 To 41
  6451.    Read PROP$(J)
  6452. Next J
  6453. If CH1=0
  6454.    CHANCE1$(12)="ADVANCE TO TATOOINE-LARS HOME"
  6455.    CHANCE1$(13)="GO TO TIE FIGHTER"
  6456.    CHANCE1$(15)="ADVANCE TO CORUSCANT-PALACE" : CHANCE3$(15)=""
  6457.    CHANCE1$(16)="ADVANCE TO CLOUDCITY-REACTOR"
  6458.    CHANCE1$(4)="Advance token to the nearest Fighter and pay"
  6459.    CHANCE3$(4)="otherwise entitled. - If Fighter is unowned,"
  6460.    CHANCE1$(5)=CHANCE1$(4)
  6461.    CHANCE3$(5)=CHANCE3$(4)
  6462. End If 
  6463. RENT(39,0)=75
  6464. Return 
  6465.  
  6466. NC:
  6467. Restore NASCAR_VERSION_DATA
  6468. For J=1 To 41
  6469.    Read PROP$(J)
  6470. Next J
  6471. If CH1=0
  6472.    CHANCE1$(12)="ADVANCE TO 42-BELLSOUTH"
  6473.    CHANCE1$(13)="GO TO CALIFORNIA SPEEDWAY"
  6474.    CHANCE1$(15)="ADVANCE TO 3 -GOODWRENCH" : CHANCE3$(15)=""
  6475.    CHANCE1$(16)="ADVANCE TO 30-PENNZOIL"
  6476.    CHANCE1$(4)="Advance token to the nearest Speedway and pay"
  6477.    CHANCE3$(4)="otherwise entitled. - If Speedway is unowned,"
  6478.    CHANCE1$(5)=CHANCE1$(4)
  6479.    CHANCE3$(5)=CHANCE3$(4)
  6480. End If 
  6481. RENT(39,0)=75
  6482. Return 
  6483.  
  6484. Procedure T1Y
  6485.    DL$="y"
  6486.    Paste Bob 491,56,26
  6487.    Paste Bob 432,56,27
  6488. End Proc
  6489.  
  6490. Procedure T1N
  6491.    DL$="n"
  6492.    Paste Bob 432,56,26
  6493.    Paste Bob 491,56,27
  6494. End Proc
  6495.  
  6496. Procedure T2Y
  6497.    PA$="y"
  6498.    Paste Bob 491,69,26
  6499.    Paste Bob 432,69,27
  6500. End Proc
  6501.  
  6502. Procedure T2N
  6503.    PA$="n"
  6504.    Paste Bob 432,69,26
  6505.    Paste Bob 491,69,27
  6506. End Proc
  6507.  
  6508. Procedure T3Y
  6509.    LH$="y"
  6510.    Paste Bob 491,82,26
  6511.    Paste Bob 432,82,27
  6512. End Proc
  6513.  
  6514. Procedure T3N
  6515.    LH$="n"
  6516.    Paste Bob 432,82,26
  6517.    Paste Bob 491,82,27
  6518. End Proc
  6519.  
  6520. Procedure T4Y
  6521.    SF$="y"
  6522.    Paste Bob 491,95,26
  6523.    Paste Bob 432,95,27
  6524. End Proc
  6525.  
  6526. Procedure T4N
  6527.    SF$="n"
  6528.    Paste Bob 432,95,26
  6529.    Paste Bob 491,95,27
  6530. End Proc
  6531.  
  6532. Procedure T5Y
  6533.    PARKING$="y"
  6534.    Paste Bob 491,108,26
  6535.    Paste Bob 432,108,27
  6536. End Proc
  6537.  
  6538. Procedure T5N
  6539.    PARKING$="n"
  6540.    Paste Bob 432,108,26
  6541.    Paste Bob 491,108,27
  6542. End Proc
  6543.  
  6544. Procedure T6Y
  6545.    PM$="y"
  6546.    Paste Bob 491,121,26
  6547.    Paste Bob 432,121,27
  6548. End Proc
  6549.  
  6550. Procedure T6N
  6551.    PM$="n"
  6552.    Paste Bob 432,121,26
  6553.    Paste Bob 491,121,27
  6554. End Proc
  6555.  
  6556. Procedure T7Y
  6557.    QD$="y"
  6558.    Paste Bob 491,134,26
  6559.    Paste Bob 432,134,27
  6560. End Proc
  6561.  
  6562. Procedure T7N
  6563.    QD$="n"
  6564.    Paste Bob 432,134,26
  6565.    Paste Bob 491,134,27
  6566. End Proc
  6567.  
  6568. Procedure T8Y
  6569.    QS$="y"
  6570.    Paste Bob 491,147,26
  6571.    Paste Bob 432,147,27
  6572. End Proc
  6573.  
  6574. Procedure T8N
  6575.    QS$="n"
  6576.    Paste Bob 432,147,26
  6577.    Paste Bob 491,147,27
  6578. End Proc
  6579.  
  6580. Procedure T9Y
  6581.    FP$="y"
  6582.    Paste Bob 491,160,26
  6583.    Paste Bob 432,160,27
  6584. End Proc
  6585.  
  6586. Procedure T9N
  6587.    FP$="n"
  6588.    Paste Bob 432,160,26
  6589.    Paste Bob 491,160,27
  6590. End Proc
  6591.  
  6592. Procedure T10Y
  6593.    BTB$="y"
  6594.    Paste Bob 491,173,26
  6595.    Paste Bob 432,173,27
  6596. End Proc
  6597.  
  6598. Procedure T10N
  6599.    BTB$="n"
  6600.    Paste Bob 432,173,26
  6601.    Paste Bob 491,173,27
  6602. End Proc
  6603.  
  6604. Procedure T11Y
  6605.    CP$="y"
  6606.    Paste Bob 491,186,26
  6607.    Paste Bob 432,186,27
  6608. End Proc
  6609.  
  6610. Procedure T11N
  6611.    CP$="n"
  6612.    Paste Bob 432,186,26
  6613.    Paste Bob 491,186,27
  6614. End Proc
  6615.  
  6616. Procedure PL1
  6617.    PP(1)=PP(1)+1
  6618.    If PP(1)=1 Then NP=NP+1
  6619.    If PP(1)>3
  6620.       If NP>2
  6621.          NP=NP-1 : PP(1)=0
  6622.       Else 
  6623.          PP(1)=1
  6624.       End If 
  6625.    End If 
  6626.    Paste Bob 88,142,38+PP(1)
  6627. End Proc
  6628.  
  6629. Procedure PL2
  6630.    PP(2)=PP(2)+1
  6631.    If PP(2)=1 Then NP=NP+1
  6632.    If PP(2)>3
  6633.       If NP>2
  6634.          NP=NP-1 : PP(2)=0
  6635.       Else 
  6636.          PP(2)=1
  6637.       End If 
  6638.    End If 
  6639.    Paste Bob 88,154,38+PP(2)
  6640. End Proc
  6641.  
  6642. Procedure PL3
  6643.    PP(3)=PP(3)+1
  6644.    If PP(3)=1 Then NP=NP+1
  6645.    If PP(3)>3
  6646.       If NP>2
  6647.          NP=NP-1 : PP(3)=0
  6648.       Else 
  6649.          PP(3)=1
  6650.       End If 
  6651.    End If 
  6652.    Paste Bob 88,166,38+PP(3)
  6653. End Proc
  6654.  
  6655. Procedure PL4
  6656.    PP(4)=PP(4)+1
  6657.    If PP(4)=1 Then NP=NP+1
  6658.    If PP(4)>3
  6659.       If NP>2
  6660.          NP=NP-1 : PP(4)=0
  6661.       Else 
  6662.          PP(4)=1
  6663.       End If 
  6664.    End If 
  6665.    Paste Bob 88,178,38+PP(4)
  6666. End Proc
  6667.  
  6668. Procedure OK
  6669.    Paste Bob 20,153,27
  6670.    Sam Play 1
  6671.    Wait DEL
  6672.    Paste Bob 20,153,26
  6673. End Proc
  6674.  
  6675. Procedure CANCEL
  6676.    Paste Bob 20,173,27
  6677.    Sam Play 1
  6678.    Wait DEL
  6679.    Paste Bob 20,173,26
  6680. End Proc
  6681.  
  6682. Procedure BFLAG
  6683.    Paste Bob 10,25,35
  6684.    Paste Bob 71,25,35
  6685.    Paste Bob 132,25,35
  6686.    Paste Bob 194,25,35
  6687.    Paste Bob 255,25,35
  6688.    Paste Bob 316,25,35
  6689.    Paste Bob 377,25,35
  6690.    Paste Bob 438,25,35
  6691.    Paste Bob 499,25,35
  6692. End Proc
  6693.  
  6694. Procedure TUS
  6695.    COUNTRY=1 : C$="$"
  6696.    CH$="y" : QQ=1
  6697.    BFLAG
  6698.    Paste Bob 10,25,36
  6699. End Proc
  6700.  
  6701. Procedure TUK
  6702.    COUNTRY=2 : C$="�"
  6703.    CH$="n" : QQ=1
  6704.    BFLAG
  6705.    Paste Bob 71,25,36
  6706. End Proc
  6707.  
  6708. Procedure TAU
  6709.    COUNTRY=3 : C$="$"
  6710.    CH$="y" : QQ=1
  6711.    BFLAG
  6712.    Paste Bob 132,25,36
  6713. End Proc
  6714.  
  6715. Procedure TFR
  6716.    COUNTRY=4 : C$="Fr"
  6717.    CH$="n" : QQ=100
  6718.    BFLAG
  6719.    Paste Bob 194,25,36
  6720. End Proc
  6721.  
  6722. Procedure TITA
  6723.    COUNTRY=5 : C$="�"
  6724.    CH$="n" : QQ=100
  6725.    BFLAG
  6726.    Paste Bob 255,25,36
  6727. End Proc
  6728.  
  6729. Procedure TGER
  6730.    COUNTRY=6 : C$="DM"
  6731.    CH$="n" : QQ=2
  6732.    BFLAG
  6733.    Paste Bob 316,25,36
  6734. End Proc
  6735.  
  6736. Procedure TSWE
  6737.    COUNTRY=7 : C$="Kr"
  6738.    CH$="n" : QQ=20
  6739.    BFLAG
  6740.    Paste Bob 377,25,36
  6741. End Proc
  6742.  
  6743. Procedure TSW
  6744.    COUNTRY=8 : C$="cr"
  6745.    CH$="y" : QQ=1
  6746.    BFLAG
  6747.    Paste Bob 438,25,36
  6748. End Proc
  6749.  
  6750. Procedure TNC
  6751.    COUNTRY=9 : C$="$"
  6752.    CH$="y" : QQ=1
  6753.    BFLAG
  6754.    Paste Bob 499,25,36
  6755. End Proc
  6756.  
  6757. Procedure TLD
  6758.    If Exist("Mono_settings")
  6759.       Paste Bob 18,64,31
  6760.       Break Off 
  6761.       F$="Mono_settings"
  6762.       Trap Open In 1,F$
  6763.       If Errtrap<>81
  6764.          Input #1,JUNK$
  6765.          If JUNK$<>"V1.8"
  6766.             Close 1
  6767.             Boom 
  6768.             Goto KLOSE
  6769.          End If 
  6770.          Input #1,TITLE$
  6771.          Input #1,PA$
  6772.          Input #1,LH$
  6773.          Input #1,SF$
  6774.          Input #1,PARKING$
  6775.          Input #1,PM$
  6776.          Input #1,QD$
  6777.          Input #1,NP
  6778.          Input #1,COUNTRY
  6779.          Input #1,QQ
  6780.          Input #1,C$
  6781.          Input #1,PP(1)
  6782.          Input #1,PP(2)
  6783.          Input #1,PP(3)
  6784.          Input #1,PP(4)
  6785.          Input #1,CP$
  6786.          Input #1,QS$
  6787.          Input #1,FP$
  6788.          Input #1,BTB$
  6789.          Close 1
  6790.          If TITLE$="y"
  6791.             T1Y
  6792.          Else 
  6793.             T1N
  6794.          End If 
  6795.          If PA$="y"
  6796.             T2Y
  6797.          Else 
  6798.             T2N
  6799.          End If 
  6800.          If LH$="y"
  6801.             T3Y
  6802.          Else 
  6803.             T3N
  6804.          End If 
  6805.          If SF$="y"
  6806.             T4Y
  6807.          Else 
  6808.             T4N
  6809.          End If 
  6810.          If PARKING$="y"
  6811.             T5Y
  6812.          Else 
  6813.             T5N
  6814.          End If 
  6815.          If PM$="y"
  6816.             T6Y
  6817.          Else 
  6818.             T6N
  6819.          End If 
  6820.          If QD$="y"
  6821.             T7Y
  6822.          Else 
  6823.             T7N
  6824.          End If 
  6825.          If QS$="y"
  6826.             T8Y
  6827.          Else 
  6828.             T8N
  6829.          End If 
  6830.          If FP$="y"
  6831.             T9Y
  6832.          Else 
  6833.             T9N
  6834.          End If 
  6835.          If BTB$="y"
  6836.             T10Y
  6837.          Else 
  6838.             T10N
  6839.          End If 
  6840.          If CP$="y"
  6841.             T11Y
  6842.          Else 
  6843.             T11N
  6844.          End If 
  6845.          For J=1 To 4
  6846.             PP(J)=PP(J)-1
  6847.          Next J
  6848.          JUNK=NP
  6849.          PL1
  6850.          PL2
  6851.          PL3
  6852.          PL4
  6853.          NP=JUNK
  6854.          On COUNTRY Proc TUS,TUK,TAU,TFR,TITA,TGER,TSWE,TSW,TNC
  6855.       End If 
  6856.    End If 
  6857.    KLOSE:
  6858.    Paste Bob 18,64,30
  6859.    JUNK$="" : JUNK=0
  6860.    Break On 
  6861. End Proc
  6862.  
  6863. Procedure TSV
  6864.    Paste Bob 18,79,31
  6865.    Break Off 
  6866.    F$="Mono_settings"
  6867.    Open Out 1,F$
  6868.    Print #1,"V1.8"
  6869.    Print #1,TITLE$
  6870.    Print #1,PA$
  6871.    Print #1,LH$
  6872.    Print #1,SF$
  6873.    Print #1,PARKING$
  6874.    Print #1,PM$
  6875.    Print #1,QD$
  6876.    Print #1,NP
  6877.    Print #1,COUNTRY
  6878.    Print #1,QQ
  6879.    Print #1,C$
  6880.    Print #1,PP(1)
  6881.    Print #1,PP(2)
  6882.    Print #1,PP(3)
  6883.    Print #1,PP(4)
  6884.    Print #1,CP$
  6885.    Print #1,QS$
  6886.    Print #1,FP$
  6887.    Print #1,BTB$
  6888.    Close 1
  6889.    Break On 
  6890.    Paste Bob 18,79,30
  6891. End Proc
  6892.  
  6893. Procedure TDF
  6894.    Paste Bob 18,95,31
  6895.    T1Y
  6896.    T2Y
  6897.    T3Y
  6898.    T4N
  6899.    T5N
  6900.    T6N
  6901.    T7N
  6902.    T8N
  6903.    T9N
  6904.    T10N
  6905.    T11N
  6906.    For J=1 To 4
  6907.       PP(J)=0
  6908.    Next J
  6909.    PL1
  6910.    PL2
  6911.    PL3
  6912.    PL4
  6913.    NP=4
  6914.    
  6915.    Rem change to 1 human & 3 amigas as default? 
  6916.    
  6917.    TUS
  6918.    Wait 7
  6919.    Paste Bob 18,95,30
  6920. End Proc
  6921.  
  6922. Procedure TLG
  6923.    Paste Bob 8,117,29
  6924.    LG$="y"
  6925.    TDF
  6926.    Paste Bob 8,117,28
  6927. End Proc
  6928.  
  6929. Procedure ENCODE[MOOSE$]
  6930.    For JU=1 To Len(MOOSE$)
  6931.       M2$=Mid$(MOOSE$,JU,1)
  6932.       JUNKY=Asc(M2$)
  6933.       If JUNKY>16
  6934.          M2$=Chr$(JUNKY+14)
  6935.       Else 
  6936.          M2$=Chr$(JUNKY)
  6937.       End If 
  6938.       MOOSE2$=MOOSE2$+M2$
  6939.    Next JU
  6940.    Print #1,MOOSE2$
  6941. End Proc
  6942.  
  6943. Procedure RECODE
  6944.    Inc SNAKE
  6945.    Input #1,MOOSE2$
  6946.    For JU=1 To Len(MOOSE2$)
  6947.       M2$=Mid$(MOOSE2$,JU,1)
  6948.       JUNKY=Asc(M2$)
  6949.       If JUNKY>30
  6950.          M2$=Chr$(JUNKY-14)
  6951.       Else 
  6952.          M2$=Chr$(JUNKY)
  6953.       End If 
  6954.       MOOSE$=MOOSE$+M2$
  6955.    Next JU
  6956. End Proc[MOOSE$]
  6957.  
  6958. Procedure QQUEST[MOOSE]
  6959.    MOOSE=MOOSE*QQ
  6960.    QQ$=Str$(MOOSE)
  6961.    MOOSE=Len(QQ$)-1
  6962.    QQ$=Right$(QQ$,MOOSE)
  6963.    QQ$=" "+QQ$
  6964. End Proc
  6965.  
  6966. Procedure _CLOSERTOOLS
  6967.    Lib Close 1
  6968. End Proc
  6969.  
  6970. Procedure CLEANCLOSE
  6971.    Amos To Front 
  6972.    Curs Off : Flash Off : Cls 0
  6973.    Palette 0,$FFF
  6974.    Lib Close 1
  6975.    End 
  6976. End Proc
  6977.  
  6978. Procedure CLEANCLOSE2
  6979.    Amos To Front 
  6980.    Palette $0,$FFF
  6981.    Curs Off : Flash Off : Cls 0
  6982.    Lib Close 1
  6983.    Paper 0 : Pen 1
  6984.    Centre Err$(Errn)
  6985.    For X=90 To 50 Step -1
  6986.       Bell X
  6987.       Wait Vbl 
  6988.    Next X
  6989.    Boom 
  6990.    End 
  6991. End Proc
  6992.  
  6993. Procedure RT_FILEREQ[TITLE$]
  6994.    BUFFER$=""
  6995.    For A=0 To 30
  6996.       BUFFER$=BUFFER$+Chr$(0)+Chr$(0)+Chr$(0)+Chr$(0)
  6997.    Next 
  6998.    TITLE$=TITLE$+Chr$(0)
  6999.    Dreg(0)=0
  7000.    Areg(0)=0
  7001.    A=Lib Call(1,-30)
  7002.    If A<>0
  7003.       Areg(1)=A
  7004.       Areg(2)=Varptr(BUFFER$)
  7005.       Areg(3)=Varptr(TITLE$)
  7006.       Areg(0)=0
  7007.       B=Lib Call(1,-54)
  7008.       P=Leek(A+16)
  7009.       B$=Peek$(P,100,Chr$(0))
  7010.       Areg(1)=A
  7011.       B=Lib Call(1,-36)
  7012.    End If 
  7013.    If Left$(BUFFER$,1)=Chr$(0)
  7014.       BUFFER$=""
  7015.    Else 
  7016.       BUFFER$=Left$(BUFFER$,Instr(BUFFER$,Chr$(0)))
  7017.    End If 
  7018.    If B$<>"" and Right$(B$,1)<>":"
  7019.       B$=B$+"/"
  7020.    End If 
  7021.    BUFFER$=B$+BUFFER$
  7022. Rem CH1
  7023. End Proc[BUFFER$]
  7024.  
  7025. Rem 7 7 7 7 7 7 7 7 7 7 7 7 7 7
  7026. Rem 14 14 14 14 14 14 14 14 14 14 14 14 14 14